Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 22:46

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Quiz mit PHP und Datenbank (mySQL)

Discussion on Quiz mit PHP und Datenbank (mySQL) within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 2
Join Date: Jan 2014
Posts: 272
Received Thanks: 32
Quiz mit PHP und Datenbank (mySQL)

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:

questionanswer1answer2answer3answer
Was ist 1+1zweidreivier1
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^^
Attached Files
File Type: rar Dateien.rar (2.4 KB, 4 views)
maxmax37 is offline  
Old 02/18/2016, 00:04   #2


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
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.
False is offline  
Thanks
1 User
Old 02/18/2016, 00:13   #3
 
elite*gold: 2
Join Date: Jan 2014
Posts: 272
Received Thanks: 32
Danke für deine Hilfe

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.
maxmax37 is offline  
Old 02/18/2016, 00:22   #4


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by maxmax37 View Post
Danke für deine Hilfe

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:
PHP Code:
$testArray arrray(   "Name"          => "Tim",   "Alter"           => 7,   "Geburtsort"   => "Münster")
Deine "Abfrage" :
echo 
$testArray['Geschlecht']; 
Natürlich kann er Geschlecht im Array nicht finden da es nicht drin ist -> Undefined Offset

Muss mich berichtigen : beim oberigen wäre es Undefined Index, bei Offset hast aber fast das gleiche Problem :
Beispiel :
PHP Code:
$testArray arrray("Tim",7,"Münster")
Deine "Abfrage" :
echo 
$testArray[3]; 
Das kann natürlich nicht gehen da Tim den Offset von 0 hat, 7 von 1 und Münster von 2 daher gibt es keine 3.



Ps. Zum Problem lösen mal in die Form gucken und schauen was für ein Namen die die RadioButtons haben und was du per $_POST nachguckst.
False is offline  
Thanks
1 User
Old 02/18/2016, 00:27   #5
 
elite*gold: 2
Join Date: Jan 2014
Posts: 272
Received Thanks: 32
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
maxmax37 is offline  
Old 02/18/2016, 00:35   #6


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by maxmax37 View Post
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 :
PHP Code:
$answer $_POST['answer']
for....
$answer[$i

Sprich $_POST['answer'] sollte den Inhalt haben :


PHP Code:
array("answer1","answer2","answer3",etc
False is offline  
Thanks
1 User
Old 02/18/2016, 00:44   #7
 
elite*gold: 2
Join Date: Jan 2014
Posts: 272
Received Thanks: 32
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?
maxmax37 is offline  
Old 02/18/2016, 00:51   #8


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by maxmax37 View Post
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.
False is offline  
Old 02/18/2016, 00:57   #9
 
elite*gold: 2
Join Date: Jan 2014
Posts: 272
Received Thanks: 32
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?
maxmax37 is offline  
Old 02/18/2016, 01:14   #10


 
False's Avatar
 
elite*gold: 0
The Black Market: 243/0/0
Join Date: Apr 2011
Posts: 11,117
Received Thanks: 2,436
Quote:
Originally Posted by maxmax37 View Post
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,=> 2,=> 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^^
False is offline  
Thanks
1 User
Old 02/19/2016, 14:07   #11
 
elite*gold: 2
Join Date: Jan 2014
Posts: 272
Received Thanks: 32
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


Danke schonmal, hat mir jetzt weitergeholfen
maxmax37 is offline  
Reply


Similar Threads Similar Threads
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
[B] MySQL Datenbank
08/13/2013 - elite*gold Trading - 4 Replies
Nichtmehr Verfügbar
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



All times are GMT +1. The time now is 22:46.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.