Gå til innhold

[Løst] Kjøre en MySQL Query inne i ett array?


Anbefalte innlegg

Hei!

 

Jeg har en liten ting som har irritert meg enstund nå.

Jeg driver å endrer litt på en "multiple question" test, men har støtt på ett lite problem. Jeg ønsker å kunne hente ut alle spørsmålene fra en SQL database, men måten koden er lagt opp på krever at hvert spørsmål skal ligge i ett array, som igjen ligger i ett stort array.

 

 

http://pastebin.no/32jh

 

Dette er koden så langt, men "$a=array (" trenger å ligge over mysql_queryen, men det fungerer ikke...

Noen som har en bedre løsning på dette?

Lenke til kommentar
Videoannonse
Annonse

hmm.. godt spørsmål, jeg ville ha gjort det slik:

 

$Q = mysql_query("SELECT * FROM ENJJPT_Questions WHERE QID=$QID ORDER BY QID ASC;");
while($R=mysql_fetch_array($Q)){
$a[ $R['QID'] ]= array(
	0 => $R['QuestionTitle'],
	1 => $R['Answer1'],
	2 => $R['Answer2'],
	3 => $R['Answer3'],
	4 => $R['Answer4'],
	6 => $R['CorrectAnswer']
	)             

}

 

MEN den spørringen din lurer jeg litt på, den henter bare ut en rad ? der QID = $QID Nå har jeg ikke sett databasen din, og kan derfor ikke si hva QID er :)

 

For å få ut igjen svarene må du kjøre noe slik som:

 

foreach( $a AS $QID => $data){
print "Spørsmål: ".$data[0]."<br>";
print $data[1]."<br>";
print $data[2]."<br>";
print $data[3]."<br>";
print $data[4]."<br><br>";
}

Lenke til kommentar

Mm, litt vanskelig å komme med noe smart ut fra kun "det virker ikke", men jeg tolker meldingen din som at du er ute etter å få alle radene fra databasen inn i $a ved å loope gjennom dem?

 

Når du setter $a = Array( ... $QID => Array ( .... skriver du over verdien $a for hver gang, og du ender bare opp med et endimesjonalt array pakket inn i et array.

 

Bruker du torbjørns løsning legger du derimot til en ny indeks og verdi til $a for hver gang.

 

$Q = mysql_query("SELECT * FROM ENJJPT_Questions WHERE QID=$QID ORDER BY QID ASC;");

 

Det jeg stusser på nå er om du forventer å få mange svar ut fra denne spørringen. Dersom QID er unik (slik en ID gjerne er) vil du nødvendigvis ikke få mer enn en rad fra databasen per spørring.

 

Dersom QID ikke er unik vil derimot ikke torbjørns metode fungere, og du må heller gjøre noe slikt som dette;

$a[] = Array(
 $Answer1,
 $Answer2,
 etc...
);

Merk fraværet av noe som helst mellom klammene etter $a.

 

Edit: Jeg må slutte å åpne flere topics på en gang, ender alltid opp med å komme med svaret for sent :(

Endret av Milktea
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...