MySQLの&PHP - /オプションリストを選択し、まだクエリを生成するために私を許可するユーザーにデータを示します
-
23-09-2019 - |
質問
申し訳ありませんが不明確なタイトルのために、例では、物事をクリアされます:
TABLE: Scenario_victories
ID scenid timestamp userid side playdate
1 RtBr001 2010-03-15 17:13:36 7 1 2010-03-10
2 RtBr001 2010-03-15 17:13:36 7 1 2010-03-10
3 RtBr001 2010-03-15 17:13:51 7 2 2010-03-10
ID
とtimestamp
他の4つのフィールドが追加されたとき、データベースによって自動的に挿入されます。
注まず最初に、ユーザは、おそらく同じ結果(側面=勝者)と同じ日付(playdate)に同じシナリオ(scenid)の複数playingsを記録することができるということです。したがって、良い測定のためのユニークIDとタイムスタンプの必要性ます。
さて、そのユーザーのページに、私は最後の2つのボタンで<select><option>...
リスト形式で自分の記録のプレイ履歴を表示しています - Delete Record
とGo to Scenario
私のスクリプトはscenid
を取るなど、よりユーザーフレンドリーなもので、いくつかの他のテーブルのリターンを打った後:
(playdate) (from scenid) (from side)
#########################################################
# 2010-03-10 Road to Berlin #1 -- Germany, Hungary won #
# 2010-03-10 Road to Berlin #1 -- Germany, Hungary won #
# 2010-03-10 Road to Berlin #1 -- Soviet Union won #
#########################################################
[Delete Record] [Go To Scenario]
HTMLで
<select name="history" size=3>
<option>2010-03-10 Road to Berlin #1 -- Germany, Hungary won</option>
<option>2010-03-10 Road to Berlin #1 -- Germany, Hungary won</option>
<option>2010-03-10 Road to Berlin #1 -- Soviet Union won</option>
</select>
さて、あなたが最初のレコードを強調表示し、私はそれを解析し、あなたが見たい正確なシナリオを生成するために十分な情報がそこにあるGo to Scenario
をクリックした場合。あなたがDelete Record
を選択した場合しかし、そこではありません - 私はplaydate
を持っていると私は、リストされているものからscenid
とside
を解析することができますが、この例では3つのすべてのレコードが同じ結果を持っているでしょう。
私はコーナーに自分自身を描いているように見えます。誰もがそれをユーザーに示すことなく、このフォームに沿って乗る(ID
および/またはtimestamp
)私はいくつかのユニークな識別データを取得する方法についての提案を持っていますか?
PHP-だけしてください、私はNoScriptのに準拠している必要があります!
解決
あなたはあなたのオプションのvalue
属性を設定し、それはあなたのデータのID
の(一意である)のを含有させることができます:
<select name="history" size=3>
<option value="1">2010-03-10 Road to Berlin #1 -- Germany, Hungary won</option>
<option value="2">2010-03-10 Road to Berlin #1 -- Germany, Hungary won</option>
<option value="3">2010-03-10 Road to Berlin #1 -- Soviet Union won</option>
</select>
掲載されていたデータを受信したときに、$_POST['history']
は、ユーザによって選びだしエントリにID
その対応が含まれます。
そして、このID
が一意であるとして、あなたは、何の疑いもせずに、あなたのデータを識別するために使用することができます。
フォームが送信されたときにvalue
属性、セットの内容は、サーバに渡される - 。それがユーザーに表示されていない
何のvalue
がオプションに設定されていない場合、ブラウザはフォームが送信される際に、サーバーにそのオプションの内容を渡します - 。あなたがなっていたものである。
:ユーザーから提出され、すべてのように、あなたが$_POST['history']
のために受信した値が、有効で安全な、そしてすべてのことであることを確認しなければならない - それは整数でなければなりません、それはユーザー缶1つの1の値でなければなりませんアクセス、...