Gå til innhold

lage en quiz


Anbefalte innlegg

Prøve å få mekket meg en quiz, for å lære arrays og det som følger med det...

har satt sammen dette til nå:

<?php 

$a = 0;

$sporsmaal = array(
     "hvem er kul?",
     "hva skjer?");

foreach ($sporsmaal as $nokkel) {
echo $sporsmaal[0]++;
} 

?>

men dette gir bare output:

hvem er kul?hvem er kul?

 

hvordan får jeg den til å bytte spørsmål?

Lenke til kommentar
Videoannonse
Annonse
Prøve å få mekket meg en quiz, for å lære arrays og det som følger med det...

har satt sammen dette til nå:

<?php 

$a = 0;

$sporsmaal = array(
     "hvem er kul?",
     "hva skjer?");

foreach ($sporsmaal as $nokkel) {
echo $sporsmaal[0]++;
} 

?>

men dette gir bare output:

hvem er kul?hvem er kul?

 

hvordan får jeg den til å bytte spørsmål?

 

Fint å lære seg noe nytt :) men du har en liten feil her

 

Når du skriver

$sporsmaal= array("Hvem er kul?", "hva skjer?");

 

Så vil $sporsmaal[0] bli "Hvem er kul?" og $sporsmaal[1] = "hva skjer?"

 

Når du bruker foreach så virker den slik

 

foreach( $sporsmaal as $nokkel)

print $nokkel;

 

første gangen den kjører blir $nokkel = $sporsmaal[0] og andre gangen blir den $sporsmaal[1].

 

men hvis du sier den skal printe ut $sporsmaal[0] så får du bare det enne spørsmålet..

 

du kan også prøve:

foreach($sporsmaal as $key => $streng)

print $key.":".$streng."<br>";

 

Da vil du få:

1: Hvem er kul?

2: Hva skjer?

 

håper at dette kan hjelpe deg litt.. Sikkerte flere som kan forklare ting bedre her enn meg :)

Lenke til kommentar

takk skal du ha, fikk den til nå :)

 

men så er det svarene og...

hvordan kan jeg få knyttet de til spørsmålene?

<?php 

$sporsmaal = array(
    "hvem er kul?",
    "hva skjer?");

/* Svar til $sporsmal[0]*/
$svar = array();
$svar[0] = "kongen";
$svar[1] = "jimi";
$svar[2] = "clint eastwood";

/* Svar til $sporsmal[0]*/
$svar2 = array();
$svar2[0] = "lite";
$svar2[1] = "mye";
$svar2[2] = "kanskje";

foreach ($sporsmaal as $nokkel) {
echo $nokkel;
echo "<br>";
} 

?>

 

hvordan gjøres det? så noe på multdimensjonelle arrays, vet ikke hvordan jeg skal få det til å funke sammen..

Lenke til kommentar

<?php 

$a = 0;

$sporsmaal = array(
     "hvem er kul?",
     "hva skjer?");

foreach ($sporsmaal as $nokkel) {
echo $sporsmaal[0]++;
} 

?>

 

hvem er kul?hvem er kul?

 

5746553[/snapback]

 

Du kan foreksempel skrive:

foreadch($spørsmål as $nøkkel)
echo $nøkkel 

Da vil den skrive ut det samme.

 

Det du sier er: Skriv ut arrayindex 0 hver gang løkken kjører (og så forsøker du å øke "noe", ikke helt sikker på hva det er)

 

I arrayen din står det egentlig:

| 0 | Hvem er kul?

| 1 | Hva skjer?

 

Du skriver at du vil lage en quiz.

Da kan du lage en multidimensjonal assosiativ array slik:

$quiz = array(
 array(
 	'Spørsmål'=>'Når var unionsoppløsningen i Norge',
 	'Svar'=>1905
 	),
 array(
 	'Spørsmål'=>'Hva heter Norges statsminister',
 	'Svar'=>'Jens Stoltenberg'
 	)
 );

foreach($quiz as $spørsmål){
foreach($spørsmål as $key=> $value){
 print $value."<br />";
}
}

 

Her har du en array, $quiz,, som består av to nye arrayer med index 0 og 1. Disse to indre arrayene er assosiative arrayer, med index-nøkler spørsmål og svar.

For å loope de trenger du en dobbel foreach-løkke, som vist ovenfor. Alternativt kan du bruke en enkel foreachløkke og hente ut indre arrays verdier slik:

foreach($quiz as $spørsmål){
 print $spørsmål['Spørsmål']. "<br />";
 print $spørsmål['Svar']. "<br />";

}

 

Da kan du også sammenligne. La oss si at du skriver ut alle spørsmål, lager en radio button til å legge inn et svar, henter denne ut ved hjelp av $_POST['svar'] eller noe slikt... da kan du si at hvis $_POST['svar'] == $spørsmål['svar'] // send premie eller noe.

Lenke til kommentar

takk for grundig beskrivelse cruelladeville:)

men trenger jo flere svaralternativer..

prøvde:

<?php
$quiz = array(
array(
 'Sporsmal'=>'Når var unionsoppløsningen i Norge',
 'Svar'=>1905'
'Svar'=>2005' /*linje 68*/
'Svar'=>1814'
 ),
array(
 'Sporsmal'=>'Hva heter Norges statsminister',
 'Svar'=>'Jens Stoltenberg'
'Svar'=>'John Cleese',
'Svar'=>'Clint Eastwood'
 )
);

foreach($quiz as $sporsmal){
foreach($sporsmal as $key=> $value){
print $value."<br />";
}
}
?>

men får:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /usr/home/web/wno90772/annet/quiz.php on line 68
Lenke til kommentar
takk for grundig beskrivelse cruelladeville:)

men trenger jo flere svaralternativer..

prøvde:

<?php
$quiz = array(
array(
 'Sporsmal'=>'Når var unionsoppløsningen i Norge',
 'Svar'=>1905'
'Svar'=>2005' /*linje 68*/
'Svar'=>1814'
 ),
array(
 'Sporsmal'=>'Hva heter Norges statsminister',
 'Svar'=>'Jens Stoltenberg'
'Svar'=>'John Cleese',
'Svar'=>'Clint Eastwood'
 )
);

foreach($quiz as $sporsmal){
foreach($sporsmal as $key=> $value){
print $value."<br />";
}
}
?>

men får:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ')' in /usr/home/web/wno90772/annet/quiz.php on line 68

5746777[/snapback]

 

Du mangler et , (komma) etter hver array-del, eks i array om statsministeren -

prøvde:[code]
<?php
$quiz = array(
array(
 'Sporsmal'=>'Når var unionsoppløsningen i Norge',
 'RiktigsvarSvar'=>1905
'GaltSvarA'=>2005, /*linje 68 Mangler komma og trenger ikke ' siden dette er tall*/
'GaltSvarB'=>1814
 ),

 

Men - og dette er et stort men...

Du kan ikke kalle flere assosiative indexer for det samme, dvs bare en kan hete 'svar' i hver subarray. Dermed må du kalle de noe annet, eks Riktigsvar, galtsvar1, galtsvar2. Eventuelt se på koden som jeg har laget her:

http://nibbler.no/files/quiz.php

 

Jeg har ikke gjort noe i forhold til logikk og sjekk av svar, men her er en multidimensjonal array (med tallindex på ytterste og indre array, og en assosiativ i midten)

 

Se om du kan forstå prinsippet i arrayen min, og husk at arrays er nummerert fra 0 og oppover med mindre du forteller otherwise.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...