Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Nachträgliche Arraywerte einfügen?
06.06.2005, 14:56 PM
Beitrag: #1
Nachträgliche Arraywerte einfügen?
Ich bastel gerade an einem Quiz-Script und stehe gerade vor dem Problem der Auswertung.

Für jeder Frage gibt es ein array mit "Frage", mehreren Antwortmöglichkeiten, sowie einer Zahl, die die richtige Antwort symbolisiert

bsp:
Code:
$QUIZ_QUESTION['1'] = array(
'Welche Gitarre wird auch als "die schwarze Göttin" bezeichnet?',
'Fender Stratocaster',
'Gibson Les Paul',
'Gibson SG',
'Gibson Flying V',
'2',
'0');

In diesem Fall soll als die 2. Antwort die richtige sein (Les Paul). Die direkte Auswertung mit einer einzelnen Variable klappt schon, allerdings möchte ich ja auch am Ende noch die Werte haben und habe mir dazu gedacht, einfach den "nächsten" arraywert mit "wahr" oder "falsch" zu belegen.

Am Anfang haben also alle Werte "0" - wie oben zu sehen. Dieser Wert soll jetzt allerdings während der überprüfung bei einer richtigen Antwort in "1" umgeändert werden - wie muss ich diese Variable dann deklarieren?

Ich habs bisher so versucht

Code:
$QUIZ_QUESTION[$x][6] = '1';

wobei das $x für die jeweils laufende Frage steht und der Wert "6" halt das 7. Arrayelement asnsprechen soll.

Geht aber nicht - was mache ich falsch?

Über Hilfe dankbar Smile


PS. Es wäre noch fast besser, wenn ich den Wert '0' am Anfang nicht festlegen müsste um den Fragenkatalog nicht unnötig aufzublähen...

SQUEALER.net - AC/DC & Hardrock Coverage
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
06.06.2005, 19:22 PM
Beitrag: #2
Nachträgliche Arraywerte einfügen?
Hi,

so ganz verstehe ich deine Vorgehensweise nicht.
Gibt es immer nur drei Antworten?
Wo speicherst du denn deine ganzen Variablen? In einer DB oder als Textfile, weil dann könnte man das ja auch anders lösen.

cu basti

iwebspace.de | Webspaceorder - Bestellsystem für ISP
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.06.2005, 13:40 PM
Beitrag: #3
Nachträgliche Arraywerte einfügen?
Ich hatte mir das so gedacht, das man die Rätsel komplett in eine Datei packt und am Ende jeweilis die Verarbeitung per PHP-Include aufruft. SQL will ich nicht verwenden, mit Datei Operation (und Flatfiles) kenn ich mich als Anfänger nu gar nicht aus. War schon froh dass das mit dem Array bisher so gut geklappt hat. Im Prinzip könnte man es auch andersherum lösen, und den Antwort wert früher legen, um dann am Ende so viele Antwortmöglichkeiten wie man will zu nutzen.

Hier mal mein derzeitiger Scriptstand:

Code:
<html>
<head>
    <title>SQUEALER.net Rock-Rätsel</title>
<link rel=stylesheet type="text/css" href="http://www.squealer.net/squealer.css">
</head>

<body><center>

<?php

// FragenArray: lfd. Nr.; 1 Zeile - Frage; Zeile 2-5 - Antwortmöglichkeiten; Zeile 6 - richtige Antwort (1,2,3,4)
$QUIZ_QUESTION['1'] = array(
'Welche Gitarre wird auch als "die schwarze Göttin" bezeichnet?',
'Fender Stratocaster',
'Gibson Les Paul',
'Gibson SG',
'Gibson Flying V',
'2',
'0');

$QUIZ_QUESTION['2'] = array(
'Welche Firma gilt als die weltweite Nummer 1 in Sachen Verstärker?',
'Park',
'Peavey',
'Fender',
'Marshall',
'4',
'0');

$QUIZ_QUESTION['3'] = array(
'Thema Shock Rock - Früher fragte man sich: Who is more freaky? Um welche zwei Künstler dreht sich diese Frage?',
'Vincent Fournier & Alice Cooper',
'Alice Cooper & Marilyn Manson',
'Alice Cooper & Ozzy Osbourne',
'Gene Simmons & Ozzy Osbourne',
'3',
'0');


$QUIZ_QUESTION['4'] = array(
'Über welche Musiker in einer Rockband wird mit einem Augenzwinkern behauptet das sie ein bißchen dämlich sind?',
'Bassisten',
'Drummer',
'Sänger',
'Keyboarder',
'1',
'0');

$QUIZ_QUESTION['5'] = array(
'Was ist am Schlagzeuger von Def Leppard besonders?',
'Er spielt im Stehen',
'Er hat nur ein Bein',
'Er hat ein kaputtes Schlagzeug',
'Im fehlt ein Arm',
'4',
'0');

$QUIZ_QUESTION['5'] = array(
'Welcher Gitarrist kam in jungen Jahren bei einem Flugzeugabsturz um´s Leben?',
'Rhandy Roads',
'Dimebag Darrel',
'Cliff Burton',
'Jimi Hendrix',
'1',
'0');

$QUIZ_QUESTION['6'] = array(
'Welches ist der heute meist gespielten Gitarrentyp in puncto E-Klampfe? ',
'Gibson SG',
'Fender Stratocaster',
'Gibson Flying V',
'Gibson Les Paul',
'2',
'0');

$QUIZ_QUESTION['7'] = array(
'Was veranlasste die Firma GIBSON dazu die SG zu entwickeln? ',
'Die Entwicklung des Rock n´ Roll',
'Die Gründung der Beatles',
'Den Bedarf an einer richtigen E-Gitarre',
'Die Konkurrenz durch den Stratocaster',
'4',
'0');


?>

<div style="width:600px; text-align:left; background:#000;">
<h1>SQUEALER.net QUIZ</h1>
<?php
// Prüfen ob Seite angegeben ist, ansonsten mit Seite 1 starten.
if ($_GET['q'] == 0) {
    $x = ('1');
    }
else { $x = $_GET['q']; }

//Prüfung ob alle Fragen abgearbeitet sind

if ($QUIZ_QUESTION[$x] == ('')) {

// Auswertung wenn alle Fragen abgearbeitet sind
            echo ('<h6>Dein Ergebnis:</h6>');
            echo ('<div class="gbody">');
for ($y=1;$y<$x;$y++) {

    echo ('Frage '.$y.': ');
        if ($question[$y][6] == '1') {
            echo ('<span style="color:#0c0;"><b>RICHTIG</b></span><br>');
                }
        else {
            echo ('<span style="color:#f00;"><b>Falsch</b></span><br>');
        }
}
    echo ('</div>');

}
//Ansonsten darstellung der nächsten Frage
else {

//Darstellung von Frage und Antworten:
echo ('<h6>Quiz 1</h6><div class="gbody">');
echo ('<b>Frage '.$x.': </b>'.$QUIZ_QUESTION[$x][0]);
echo ('<br><br>');

// Provisorisch um w/f variable zu prüfen
echo ('L:'.$question[$x-1][6].'<br><br>');

echo ('<b>Antwortmöglichkeiten:</b>');
echo ('<form action="?q='.($x+1).'" method="post">');
echo ('<div style="margin-left:30px;">');
// eventuell Schleife zur Überprüfung der Anzahl von Antworten einfügen

echo ('Antwort 1: &nbsp;<input type="Radio" name="antwort" value="1" title="1">'.$QUIZ_QUESTION[$x][1].'<br>');
echo ('Antwort 2: &nbsp;<input type="Radio" name="antwort" value="2" title="2">'.$QUIZ_QUESTION[$x][2].'<br>');
echo ('Antwort 3: &nbsp;<input type="Radio" name="antwort" value="3" title="3">'.$QUIZ_QUESTION[$x][3].'<br>');
echo ('Antwort 4: &nbsp;<input type="Radio" name="antwort" value="4" title="4">'.$QUIZ_QUESTION[$x][4].'<br><br>');

echo ('<input type="submit" value="Weiter"></form>');
echo ('<br>');


//Prüfung der vorherigen Antwort, wenn Variable gesetzt.
if ($x < 2) {}
else {
    echo ('<hr>Frage '.($x-1));
    echo ('<br><b>Deine Antwort war:</b>');
    echo ('<br>Antwort-Nr: '.$antwort.' - '.$QUIZ_QUESTION[$x-1][$antwort]);
    
    echo ('<br><br><b>Die richtige Antwort war:</b>');
    echo ('<br>Antwort-Nr: '.$QUIZ_QUESTION[$x-1][5].' - '.$QUIZ_QUESTION[$x-1][$QUIZ_QUESTION[$x-1][5]]);
    
    
    
    if ($QUIZ_QUESTION[$x-1]['5'] == $antwort) {
            echo ('<br><br>Das war <span style="color:#0c0;"><b>RICHTIG</b></span>');
            // Wert 6 des Fragenarrays auf richtig (1) oder falsch (0) setzen
            $QUIZ_QUESTION[$x][6] = '1';
            
            //$QUIZ_QUESTION[$x][6] = ('1');
            }
        else {
            echo ('<br><br>Das war <span style="color:#f00;"><b>Falsch</b></span>');
            }
        
        }
}
echo ('</div>');



?>

<br><br>
<br>
<br>

<small>Quiz &copy; 2005 by EDV-Krischer</small>

</div>

</div></center>
</body>
</html>

Testversion ist hier online:
-> http://www.squealer.net/quiz.php

SQUEALER.net - AC/DC &amp; Hardrock Coverage
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
07.06.2005, 15:30 PM
Beitrag: #4
Nachträgliche Arraywerte einfügen?
Hmm,

naja ich würde so was mit sql machen, ist eher mein Ding Wink

cu basti

iwebspace.de | Webspaceorder - Bestellsystem für ISP
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.06.2005, 23:56 PM
Beitrag: #5
Nachträgliche Arraywerte einfügen?
Ich versuche nach ein wenig Pause, das ganze jetzt etwas anders aufzubauen, und möchte die jeweiligen Werte in die URL übergeben.

D.h. in der Form:
quiz.php?q=4&k1=0&k2=1&k3=1

der q=4 Wert steht für die aktuelle Frage, und die jeweiligen k1 - k3 Werte für die jeweiligen Antworten zu den Fragen 1-3 (0 für falsch, 1 für richtig).
Wie kann ich jetzt jeweils zu Scriptbeginn, die aktuelle URL auslesen um am Ende nur die nächste Variable anzuhängen? Bzw. wie erweitere ich eine STRING-Variable?

mit dem Schema

$antworten = $antworten.$add;

funktionierts bei mir leider nicht.

SQUEALER.net - AC/DC &amp; Hardrock Coverage
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.06.2005, 15:46 PM
Beitrag: #6
Nachträgliche Arraywerte einfügen?
Hi,

Url Variablen liest du so aus:

Zitat:index.php?var1=1&var2=2

Das gibt dann:

Zitat:$_GET['var1'] = 1;
$_GET['var2'] = 2;

Schau mal hier:
http://www.php.net/manual/de/reserved.va...les.server

Vor allem die Variable $_SERVER['PHP_SELF'] dürfte das machen, was du brauchst.

Was meinst du mit erweitern der String Variable?
Du kannst beliebig viele Variablen an die Url anhängen.

cu basti

iwebspace.de | Webspaceorder - Bestellsystem für ISP
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste

Kontakt | faqboard.info | Nach oben | Zum Inhalt | Archiv-Modus | RSS-Synchronisation