Hallo,
ich habe vor ein Quiz mithilfe von PHP und einer Datenbank zu programmieren.
Dabei stehen die Fragen in einer Tabelle und es gibt 3 Antworten die Struktur ist folgende mit einem Beispiel:
question
answer1
answer2
answer3
answer
Was ist 1+1
zwei
drei
vier
1
Da es mehrere Fragen pro Tabelle sind, werden die mithilfe einer for-Schleife auf der PHP-Seite ausgegeben. Das klappt auch.Dann soll es eine Seite geben, wo man die Ergebnisse sieht, also welche Fragen richtig und welche Fragen falsch sind. Da liegt das Problem, denn angeblich sind immer alle Fragen falsch. Die Auswertung soll auch mit einer for-Schleife funktionieren, in der ich meinen Fehler nicht finde.Ich hab die Dateien mal mithochgeladen. Würde mich freuen, wenn mir dabei einer helfen kann.
Das ganze ist ein kleines Projekt in der Schule in Informatik, aber dank der Inkompetenz des Lehrers nicht von ihm lösbar^^
Habe jetzt nur schnell drüber geguckt und nichts getestet, jedoch dies gefunden :
PHP Code:
if ($_POST['$i']==$Zeile['answer'])
</span>
Wenn du eine Variable in einfachen Anführungszeichen('') schreibst dann wird diese nicht genutzt sondern als String übernommen, daher kann es nicht gehen.
Da du statt: $_POST[1]
$_POST[2]
$_POST[3]
$_POST[4]
immer das hast:
$_POST['$i']
$_POST['$i']
$_POST['$i']
$_POST['$i']
Mögliche Lösung wäre es einfach die Anführungszeichen weg zu lassen da $i ja eh ein Integer ist oder Normale Anführungszeichen ("") zu nutzen.
Leider hat es nicht geholfen. Als Fehlermeldung habe ich jetzt Undefined Offset bekommen. Ich werde selber nochmal nachgucken was das bedeutet.
Allerdings bin ich mir auch nicht sicher, ob das überhaupt in der Theorie so funktionieren kann wie ich das bisher geschrieben habe.
Den Tipp kann ich dir schonmal geben, Undefined Offset heißt das du ein key in dem Array (welches du mit mysql_fetch_array erzeugst) suchst, jedoch nicht vorhanden ist.Beispiel:
Ok danke. Habe jetzt gerade auch festgestellt, das es mit $_POST[$i] auch gar nicht funktionieren kann. Das stammte noch von den Versuchen wo ich rumprobiert habe.
In der Theorie müsste ja bei $_POST[] der Name der Radiobuttons stehen. Die heißen bei mir answer[$i], da die einzelnen Fragen ja unterschiedlichen Namen benötigen.
Wenn ich jetzt aber _$POST["$answer[$i]"] probiere, klappt das leider auch nicht. Er zeigt an, dass alle Antworten falsch sind, weil die Überprüfung halt nicht klappt. Der Error ist undefiened Index
Und genau da komm ich nicht weiter, weil das für mich der einzige logische Lösungsansatz wäre
Ok danke. Habe jetzt gerade auch festgestellt, das es mit $_POST[$i] auch gar nicht funktionieren kann. Das stammte noch von den Versuchen wo ich rumprobiert habe.
In der Theorie müsste ja bei $_POST[] der Name der Radiobuttons stehen. Die heißen bei mir answer[$i], da die einzelnen Fragen ja unterschiedlichen Namen benötigen.
Wenn ich jetzt aber _$POST["$answer[$i]"] probiere, klappt das leider auch nicht. Er zeigt an, dass alle Antworten falsch sind, weil die Überprüfung halt nicht klappt. Der Error ist undefiened Index
Und genau da komm ich nicht weiter, weil das für mich der einzige logische Lösungsansatz wäre
Habe lange nicht mehr mit reinem $_POST gearbeitet.. jedoch hast du ja als Name answer[$i] da du [] nutz heißt es, es ist ein Array.Daher musst du (wenn ich mich grade nicht irre) folgendes machen :
Ich komme leider so nicht weiter mit deinem Lösungsvorschlag... Bin noch totaler PHP Anfänger und mir ist jetzt nicht ganz bewusst was in die for-Schleife.Du hast ja gesagt, du hast selten mit $_POST gearbeitet. Gibt es noch eine andere Möglichkeit?
Ich komme leider so nicht weiter mit deinem Lösungsvorschlag... Bin noch totaler PHP Anfänger und mir ist jetzt nicht ganz bewusst was in die for-Schleife.Du hast ja gesagt, du hast selten mit $_POST gearbeitet. Gibt es noch eine andere Möglichkeit?
Wenn du noch nicht ganz weißt was in einer for Schleife passiert schau dir erstmal for schleifen ohne arrays an.Grob gesagt gibst du einfach einfach nur wie er zählen soll, also an Parameter : von wo, bis wann und was nach ein Durchlauf passieren soll.
Also, schau dir mal For schleifen an und wenn du die verstanden hast schau dir Arrays an.
Mach nicht den Fehler Sachen einfach zu verwenden wenn du nicht weißt was sie machen(erst recht nicht 2 Sachen zusammen wo du nicht weißt was sie Tun).
Setz dich lieber im schlimmsten Fall für 1-2 Stunden hin und lies dir es Durch statt verzweifelt den Fehler zu suchen
Natürlich gibt es Hilfen die das ganze ein erleichtern, nennt sich Framework, aber für jemanden der grade erst angefangen hat ist es nicht förderlich.
Also die Funktionsweise von Schleifen ist mir schon bewusst und ich verstehe auch wie die funktioniert, aber ich habe nicht ganz verstanden was die jetzt im Zusammenhang mit dem $_POST bewirken soll und wie ich das Array verwenden muss.
Weil in der Theorie war ja mein Gedankengang richtig oder?
Also die Funktionsweise von Schleifen ist mir schon bewusst und ich verstehe auch wie die funktioniert, aber ich habe nicht ganz verstanden was die jetzt im Zusammenhang mit dem $_POST bewirken soll und wie ich das Array verwenden muss.
Weil in der Theorie war ja mein Gedankengang richtig oder?
Wenn du dir nicht sicher bist wie ein Array aufgebaut ist nutz print_r($array); , damit siehst du es.
Du bist so halb richtig, zunächst bei dem Namen kannst du das $i entfernen da du eh nur hochzählst und wenn nichts als key angegeben ist zählt er automatisch hoch.
Also ist dein $_POST['answer'] ein Array welches ca so aussehen sollte(mit print_r prüfen!) :
PHP Code:
array(1,2,3) bzw array(1 => 1,2 => 2,3 => 3) ist das selbe
Nun gibst du dir einfach mal beides aus was du beim If prüfst und schaust warum es unterschiedlich ist.
Ps. evtl hast du den Fehler darin das du in deiner datenbank in der Spalte answer eine Antwort hast statt ein Int.
Bedenke das du bei den Radiobuttons beim Attribute value 1,2 und 3 hast.
Solltest du ein String in der Datenbank haben prüfst du logischerweise z.b.
if("Antwort" == 1)
{
}
Was natürlich nicht geht.
Solltest du Teamviewer haben kann ich dir auch darüber helfen, geht wahrscheinlich leichter^^
Also ich bin jetzt ein bisschen weitergekommen. In der Datenbank hatte tatsächlich die Antwort auch den Datentyp Varchar und nicht Int. Das habe ich jetzt schonmal geändert.Ich habe mir dann auch noch die beiden Arrays ausgeben lassen und die sind beide richtig. Das bedeutet ja, dass in meiner bisherigen For-Schleife noch immer ein Fehler sein muss.
Würde dann also gerne mal auf das Angebot mit Teamviewer zurückkommen
Wenn du Zeit hast kannst du dich ja vlt mal per PN melden
Mysql datenbank? 01/04/2014 - Metin2 Private Server - 2 Replies Hey,
hab mal ne frage, momentan werden irgendwie wieder sehr viele accounts gehackt auf pservern und DE auch sogar wo ich unterwegs bin. Habe mich mal bischen erkundigt und bin bisher soweit, dass es anscheinend sogenannte mysql datenbanken sind die released wurden oder what ever :)
wollte mal fragen ob sich da jemand auskennt..
lg
MySQL-datenbank ??? 04/02/2013 - WoW Private Server - 3 Replies Hey,
Ich wollte mal wissen ob sich jemand hier mit dieser Datenbank auskennt und mir einige Grundsätze und mehr beibringen könnte ?
Wäre dankbar wenn sich wer melden würden.
meine skypeaddy : nilskersting1
oder auch aufm TS bei Casto1990 oder Slinkers melden
TS id : gamestown24.de:9887
MYSQL - DATENBANK FÜR WBB 01/11/2011 - Technical Support - 7 Replies Hallo,
Ich kann bei mein Hoster ingwie kein WBB forum installieren.
Ich kann auf MYSQL nicht connecten,
und wollte fragen ob eine ing ein Hoster kennt oder sonst was - wo ich die ganzen daten bekomme damit ich WBB installieren kann.
Nicht so was wie square7 oder so- das forum soll über meine .de domain laufen.
Danke.
MySQL-Datenbank, Frage! 09/27/2009 - Metin2 Private Server - 0 Replies Nabend,
Hab eine Frage, wie muss das alles so aus sehen in Navicat?
Kann das mal bitte einer zeigen!
Wäre echt nett!
Lg