Avatar billede krohn Praktikant
23. februar 2013 - 21:38 Der er 4 kommentarer

Skriv random array til session

Jeg prøver at hente random spørgsmål, og vil gerne skrive dem i en session, men kan bare ikke få det til.
den skriver kun det sidste qustion_id i session, men hvis jeg prøver at se resultatet vi echo $set_q så vises det ok?
Hvad gør jeg galt?

PS. Hvordan gør jeg det "rigtigt" så der ikke er et . efter sidste værdi?  Det er "vist ikke den helt rigtige måde jeg har gjort her..

//Code
$qustions_sql = mysql_query("SELECT * FROM qustions ORDER BY RAND() LIMIT $question_select")
or die(mysql_error());
while($qustions_row = mysql_fetch_array($qustions_sql)){
$set_q = $qustions_row['qustion_id'].".";

$_SESSION['SESS_QUESTION_LIST'] = $set_q;//Viser kun sidste værdi

echo $set_q;//Viser alle værdier
}
//End code
Avatar billede jakobdo Ekspert
23. februar 2013 - 21:43 #1
Hvis du startede med at indlæse $qustions_row['qustion_id']
i et array:

$questions[] = $qustions_row['qustion_id'];

Så kunne du:

echo implode(".",$questions);
Så vil der "kun" være . mellem og ikke efter den sidste.

Hvis du gerne vil gemme $questions i en session, så burde:

$_SESSION['questions'] = $questions; virke fint.
SESSION kan fint håndtere arrays, klasse, objekter og andre datatyper.
Så jeg tror desværre du må gøre noget galt.
Avatar billede olebole Juniormester
23. februar 2013 - 21:47 #2
<ole>

$set_q .= $qustions_row['qustion_id'].".";

- men brug jakobdo's forslag - det er bedre. Undgå generelt at udskrive i løkker. Det er noget, man gør i tutorials og eksempler, men ikke i produktionskode  =)

/mvh
</bole>
Avatar billede krohn Praktikant
23. februar 2013 - 22:48 #3
Ved ikke hvad jeg har pillet ved, men any way såå virker det som ønsket nu.
Om bestemte mig dog mht session, og gemmer det i min db i en quiz bank så den kan hentes igen.

Takker
Smid et svar så lukker jeg her.

endte med dette.

//code
$qustions_sql = mysql_query("SELECT * FROM qustions ORDER BY RAND() LIMIT $question_select")
or die(mysql_error());       
while($qustions_row = mysql_fetch_array($qustions_sql)){
$hmm[] = $qustions_row['qustion_id'];
}
$qdo = implode("-",$hmm);
$query = "INSERT INTO quiz_bank(quiz_name, questions, qustions_count, member_id, created_date) VALUES('$quiz_name',  '$qdo', '$question_select', '$member_id', '$created_date')";
$result = mysql_query($query) or die(mysql_error());
//End code
Avatar billede jakobdo Ekspert
24. februar 2013 - 10:30 #4
Du kan få et svar her...
Dog gør det ondt når du gemmer data på den måde i en database.
Hvorfor gemmer du ikke hvert ID i en post hver for sig?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester