Yaricks Skrevet 21. mai 2011 Del Skrevet 21. mai 2011 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
Thomas. Skrevet 22. mai 2011 Del Skrevet 22. mai 2011 (endret) Synes du har forklart problemstillingen din litt vel dårlig. Fint om du kunne utdypt litt nærmere Endret 22. mai 2011 av Thomas. Lenke til kommentar
torbjørn marø Skrevet 22. mai 2011 Del Skrevet 22. mai 2011 Ingen PHP-ekspert, og ikke sikker på hva som er problemet ditt, men skal forsøke å være mer hjelpsom enn Thomas. Hva om du sier $a = array(); før spørringen din, og så etter spørringen (linje 12) sier du $a[$QID] = array(0 => ... Lenke til kommentar
trondes Skrevet 22. mai 2011 Del Skrevet 22. mai 2011 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
Milktea Skrevet 22. mai 2011 Del Skrevet 22. mai 2011 (endret) 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 22. mai 2011 av Milktea Lenke til kommentar
Yaricks Skrevet 22. mai 2011 Forfatter Del Skrevet 22. mai 2011 *snip* Se der! Tusen takk, gjorde akkurat det jeg trengte, og fungerer strålende! $QID er unik, men har endel ting før dette som henter ut $QID. Lenke til kommentar
Jonas Skrevet 23. mai 2011 Del Skrevet 23. mai 2011 Dersom QID er unik, så er det ikke nødvendig å sortere resultatene, ei heller å bruke en løkke for å hente det ut. Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå