Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie füge ich meiner Datenbank in einem Formular eine Stimme hinzu?

Erhalten Sie Fehlermeldungen?

Es hört sich so an, als ob Sie versuchen, die Ergebnisse einer Umfrage anzuzeigen (nachdem der Benutzer seine eigene Stimme abgegeben hat), aber Sie haben Probleme beim Abrufen der Ergebnisse der Umfrage. Da die Umfrageergebnisse über Benutzer und Sitzungen hinweg bestehen bleiben müssen, müssen Sie sie irgendwo speichern. Ich denke, das ist $answer ist in deiner Datenbank?

Ihr UPDATE Abfrage ist ein bisschen kaputt. Zuerst sollten Sie sicherstellen, dass es ohne die Variablen richtig funktioniert. Ich verwende gerne den Befehlszeilen-Client oder ein grafisches Tool wie phpMyAdmin. Es könnte eher so aussehen:

UPDATE polls SET result = result + 1 WHERE poll_id = 1;

Wobei poll ist Ihre Tabelle und Ihr result und poll_id sind Spalten in Ihrer Tabelle.

Es sieht so aus, als ob Sie versuchen, dem Benutzer mehrere Fragen zu stellen, also hätten Sie eine andere poll_id für jeden und verwenden Sie ein verstecktes Formularfeld, um den Wert für die poll_id zu erhalten . Sie scheinen die $row zu verwenden Array dafür, aber es scheint zerbrechlich zu sein und wird nicht skaliert, wenn Sie mehr Umfrageoptionen erstellen (nun, technisch gesehen wird es skaliert, aber Sie werden niemals in der Lage sein, eine Frage zu entfernen oder alte Umfragen loszuwerden.

Sie scheinen PDO zu verwenden (da der "objektorientierte Stil" mysqli execute nimmt einen void-Parameter und keine der PHP-Bibliotheken, die mit SQL Server sprechen, scheint genau diese Syntax zu haben), aber dann würde ich Ihren prepare erwarten Anweisung, Fragezeichen für die Variablen statt direkter Substitution zu haben. Siehe das PHP-Handbuch für Details, wenn Sie sich über die richtige Syntax nicht sicher sind, aber hoffentlich haben Sie das bereits durchgemacht, bevor Sie hierher gekommen sind.

Sobald Sie diese Probleme behoben haben, sollte es bei weiteren Problemen etwas einfacher sein, nachzuvollziehen, was vor sich geht.