MySQL & PHP - wähle / Optionslisten und Daten für Nutzer, die noch erlaubt mir Abfragen zu generieren

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

  •  23-09-2019
  •  | 
  •  

Frage

Es tut uns der unklaren Titel, ein Beispiel werden die Dinge klären:

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 und timestamp sind auto-Einfügungen von der Datenbank, wenn die anderen vier Felder hinzugefügt werden.

Das erste, was zu beachten ist, dass ein Benutzer mehr playings des gleichen Szenarios (scenid) am selben Tag (Playdate), die möglicherweise mit dem gleichen Ergebnis aufzeichnen kann (Seite = Sieger). Daraus ergibt sich die Notwendigkeit, dass die eindeutige ID und Zeitstempel für eine gute Maßnahme.

Nun, auf ihrer Benutzerseite, ich bin ihre aufgezeichnete Spielgeschichte in einer <select><option>... Listenform mit 2 Tasten am Ende der Anzeige - Delete Record und Go to Scenario

Mein Skript nimmt die scenid und nach ein paar anderen Tabellen kehren mit etwas benutzerfreundlicher wie das Schlagen:

  (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]

in 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>

Nun, wenn Sie waren der erste Datensatz zu markieren, und klicken Sie auf Go to Scenario gibt es genügend Informationen für mich, es zu analysieren und produzieren, die genaue Szenario, das Sie sehen wollen. Allerdings, wenn Sie wählen waren Delete Record gibt es nicht. - Ich habe die playdate und ich kann die scenid und side aus analysieren, was aufgeführt ist, aber in diesem Beispiel alle drei Datensätze würde das gleiche Ergebnis

erscheinen ich mich gemalt haben in eine Ecke. Hat jemand einen Vorschlag, wie ich einige einzigartige identifizierende Daten erhalten können (ID und / oder timestamp) auf diesem Formular mitfahren, ohne sie dem Benutzer angezeigt?

PHP-only bitte, ich muss NoScript-konform sein!

War es hilfreich?

Lösung

Sie können ein value Attribut auf Optionen gesetzt, und machen es den ID enthält (was einzigartig ist) Ihre Daten:

<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>

Dann, wenn die Daten empfangen, die geschrieben worden ist, wird $_POST['history'] enthalten die ID dass entsprechen dem Eintrag durch den Benutzer gewählt.

Und wie diese ID eindeutig zuzuordnen sind, können Sie zu identifizieren, nutzen, ohne jeden Zweifel, Ihre Daten.


Der Inhalt des value Attribut, wenn es gesetzt ist, an den Server übergeben wird, wenn das Formular abgeschickt wird -. Es ist dem Benutzer nicht angezeigt

Wenn kein value für eine Option festgelegt ist, wird der Browser den Inhalt dieser Option an den Server übergeben, wenn das Formular abgeschickt wird -. Das ist, was Sie bekommen

Als Nebenbemerkung: wie mit allem, was von einem Benutzer eingegeben werden, müssen Sie prüfen, ob der Wert für $_POST['history'] erhalten gilt, sicher und all das - es eine ganze Zahl sein sollte, sollte es ein man die Werte der Benutzer kann sein Zugang, ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top