MySQLの&PHP - /オプションリストを選択し、まだクエリを生成するために私を許可するユーザーにデータを示します

StackOverflow https://stackoverflow.com/questions/2541643

  •  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

IDtimestamp他の4つのフィールドが追加されたとき、データベースによって自動的に挿入されます。

注まず最初に、ユーザは、おそらく同じ結果(側面=勝者)と同じ日付(playdate)に同じシナリオ(scenid)の複数playingsを記録することができるということです。したがって、良い測定のためのユニークIDとタイムスタンプの必要性ます。

さて、そのユーザーのページに、私は最後の2つのボタンで<select><option>...リスト形式で自分の記録のプレイ履歴を表示しています - Delete RecordGo 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を持っていると私は、リストされているものからscenidsideを解析することができますが、この例では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の値でなければなりませんアクセス、...

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top