Multiple choice Quiz

xxxGURUxxx

Grünschnabel
Hallo,

ich bin eigentlich in .net zu Hause aber jetzt versuche ich es mal in PHP mit einem Multiple Choice Quiz
die MYSQL Datenbank habe ich schon aufgebaut und funktioniert lt. einem Beispiel Code
will ich nun die Tabelle der Fragen und die Antworten zusammenführen in den Beispiel PHP Code

aber ich habe absolut keinen schimmer
kann mir jemand Bitte einen Tipp geben

Zur Info:
MY SQL Tabelle mit Fragen
MY SQL Tabelle mit 4 Antworten
also gleich wie es im Beispiel gefordert wurde
das Beispiel funktioniert auch sehr gut

Danke

Mario

PHP:
<!DOCTYPE HTML>

<html>
    <head>

        <style>
            body {
       
		  }

		  #ccontainer{
		  width:550px;

		  margin: 0 auto;
		  margin-top:100px;
		  }

		  #myCanvas {
		//background:#FFFFFF;
            }

        </style>

        <script>
            window.onload = function(){

        var canvas = document.getElementById("myCanvas");
        var context = canvas.getContext("2d");
				var quizbg = new Image();
				var Question = new String;
				var Option1 = new String;
				var Option2 = new String;
				var Option3 = new String;
				var Option4 = new String;				
				var mx=0;
				var my=0;
				var CorrectAnswer = 0;
				var qnumber = 0;
				var rightanswers=0;
				var wronganswers=0;
				var QuizFinished = false;
				var lock = false;
				var textpos1=45;
				var textpos2=145;
				var textpos3=230;
				var textpos4=325;
				var textpos5=420;
				
				var Questions = ["Wo ist Paris?","Wo ist London?","Wo ist Rom?"];
				var Options = [["Frankreich","Belgien","Österreich","Deutschland"],["England","China","Italien","Schweiz"],["Italien","Canada","USA","Kuba"]];

				quizbg.onload = function(){
			      context.drawImage(quizbg, 0, 0);
				  SetQuestions();
				}//quizbg
				quizbg.src = "quizbg.png";

				SetQuestions = function(){
					Question=Questions[qnumber];
					CorrectAnswer=1+Math.floor(Math.random()*4);

					if(CorrectAnswer==1){Option1=Options[qnumber][0];Option2=Options[qnumber][1];Option3=Options[qnumber][2];Option4=Options[qnumber][3];}
					if(CorrectAnswer==2){Option1=Options[qnumber][1];Option2=Options[qnumber][0];Option3=Options[qnumber][2];Option4=Options[qnumber][3];}
					if(CorrectAnswer==3){Option1=Options[qnumber][2];Option2=Options[qnumber][3];Option3=Options[qnumber][0];Option4=Options[qnumber][1];}
					if(CorrectAnswer==4){Option1=Options[qnumber][3];Option2=Options[qnumber][2];Option3=Options[qnumber][1];Option4=Options[qnumber][0];}
					
					context.textBaseline = "middle";
					context.font = "24pt Calibri,Arial";
					context.fillText(Question,20,textpos1);
					context.font = "18pt Calibri,Arial";
					context.fillText(Option1,20,textpos2);
					context.fillText(Option2,20,textpos3);
					context.fillText(Option3,20,textpos4);
					context.fillText(Option4,20,textpos5);

				}//SetQuestions

				canvas.addEventListener('click',ProcessClick,false);

				function ProcessClick(ev) {
                  my=ev.y-canvas.offsetTop;
                  if(ev.y == undefined){
                                        my = ev.pageY - canvas.offsetTop;
                                        }
                                        
                  if(lock){
                          ResetQ();
                          }//if lock
                  else{
                      if(my>110 && my<180){GetFeedback(1);}
                      if(my>200 && my<270){GetFeedback(2);}
                      if(my>290 && my<360){GetFeedback(3);}
                      if(my>380 && my<450){GetFeedback(4);}
                       }//!lock
                                    }//ProcessClick



		GetFeedback = function(a){

		  if(a==CorrectAnswer){
		  	context.drawImage(quizbg, 0,490,75,70,480,108+(90*(a-1)),75,70);
			rightanswers++;
			//drawImage(image, sx, sy, sWidth, sHeight, dx, dy, dWidth, dHeight)
		  }
		  else{
		    context.drawImage(quizbg, 75,490,75,70,480,108+(90*(a-1)),75,70);
			wronganswers++;
		  }
		  lock=true;
		  context.font = "14pt Calibri,Arial";
		  context.fillText("Klick für nächste Frage...",20,480);
		}//get feedback


		ResetQ= function(){
		lock=false;
		context.clearRect(0,0,560,490);
		qnumber++;
		if(qnumber==Questions.length){EndQuiz();}
		else{
		context.drawImage(quizbg, 0, 0);
		SetQuestions();}
		}


		EndQuiz=function(){
		canvas.removeEventListener('click',ProcessClick,false);
		context.drawImage(quizbg, 0,0,550,90,0,0,560,490);
		context.font = "20pt Calibri,Arial";
		context.fillText("Das Quiz ist nun Fertig!",20,100);
		context.font = "16pt Calibri,Arial";
		context.fillText("Richtige Antworten: "+String(rightanswers),20,200);
		context.fillText("Falsche Antworten: "+String(wronganswers),20,240);
		}
			};//windowonload

        </script>


    </head>
    <body>

    <div id="ccontainer">
		<canvas id="myCanvas" width="550" height="490"></canvas>
    </div>


</body>
</html>
 
Folgendes Probleme sehe ich
1. der Code den du gepostest hast enthält kein PHP sonder Javascript
2. Habe ich noch nicht ganz verstanden was du von uns möchtest

Möchtest du Beispielcode haben oder ist das oben dein Beispielcode?
Sollte das dein Beispielcode sein @mods Verschieben in Javascript
sonnst erkläre doch noch einmal bitte ganz genau was du haben willst bzw. was du erreichen möchtest.
 
Hallo,

das ist ja schon mal eine super Information daß das Java ist

zum Problem:
ich möchte in diesem Code eine Verbindung zu mySQL herstellen,
das die Fragen und die Antworten von dort abgefragt verwendet werden.

danke wieder

Mario
 
Hallo,

mir ist eigentlich ganz egal mit was für eine Programmiersprache
ich will halt ein Mutliple Choice Quiz mit Fragen bzw antworten von der MySQL Datenbank

ich suchte im IE nach "Mutliple Choice Quiz" und da habe ich diese Beispiel gefunden.

hast du noch eine Idee oder Tipp zu meiner Aufgabe?

Danke schon mal
Mario
 
Klar habe ich Ideen, was möchtest du wissen?

Ich würde z.B. in PHP eine Art API bauen die dir Fragen und Antworten erzeugt und am Ende die Eingaben auswertet. JavaScript würde ich in Form von AJAX zur Übermittlung der Daten bzw. aufbereitung der Daten verwenden.
 
Hallo,

@xxxGURUxxx: DU musst entscheiden welche Programmiersprache für DICH am besten ist.
Oder du lässt es jemand Anderes machen.

So seh ich es nunmal. Ein Quiz ist grundsätzlich für ein Anfänger eine schöne Aufgabe :)
Dennoch, wenn man kein blassen Schimmer von der vorab gewählten Programmiersprache hat sollte man noch kleiner anfangen.

Das was SkyLab geschrieben hat, hört sich doch vernünftig an. Allerdings würde ich dir empfehlen mit PHP und Mysql mal ein bißchen rumzutesten bevor du gleich mit Ajax die Haustür einrennst.

Gruß
 
Zurück