Avatar billede nomisweb Nybegynder
16. marts 2006 - 22:27 Der er 7 kommentarer og
1 løsning

Hvordan fungere random?

Jeg har læst nogle af de andre indlæg omkring random (www.eksperten.dk/spm/303488 og www.eksperten.dk/spm/37913) og fundet frem til dette:

$result = mysql_query("SELECT * FROM tabel_1 ORDER BY RAND() LIMIT 0,1") or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());

echo '<i>'.$row[1].'</i><br /> - '.$row[2].'<br />';

Det er dog ikke helt som jeg gerne vil have det!

Jeg har prøvet at lave sql forespørgslen med 2 tabeller, men det virker ikke.
Jeg ville gerne have noget i denne retning, men hvor er min fejl?

$result = mysql_query("SELECT * FROM tabel_1, tabel_2 ORDER BY RAND() LIMIT 0,1") or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());

echo '<i>'.$row[1].'</i><br /> - '.$row[2].'<br />';

Derudover synes jeg at den øverste version ovenfor, ikke er specielt random. Det virker som om det er svært for den at vælge blandt dem alle?!

Evt. vil jeg gerne have en forklaring på hvordan random tingen fungere...syns den er lidt tricky!

Tak for hjælpen!
S
Avatar billede zeiox Nybegynder
16. marts 2006 - 23:01 #1
$result = mysql_query("SELECT * FROM tabel_1 AND tabel_2 ORDER BY RAND() LIMIT 0,1") or die(mysql_error());
$row = mysql_fetch_array($result) or die(mysql_error());

virker det?
Avatar billede hmortensen Nybegynder
16. marts 2006 - 23:07 #2
Hvordan er sammenholdet mellem tabel1 og tabel2 ?
Avatar billede nomisweb Nybegynder
16. marts 2006 - 23:24 #3
zeiox: det virkede ikke jeg fik denne fejl meddelelse - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND graakassecitater ORDER BY RAND() LIMIT 0,1' at line 1

Hmortensen: jeg er ikke sikker på at jeg forstår dit spørgsmål, men de 2 tabeller er i samme db, men de har ikke nogen tilknytning til hinanden som sådan. De 2 tabeller burde vel egentlig være en tabel og så have en værdi som kunne differenciere inholdene fra hinanden. Men det har jeg ikke lige gjort det store ud af!
Avatar billede hmortensen Nybegynder
17. marts 2006 - 06:44 #4
Der er nødt til at være en tilknytning mellem de to tabeller, eller bliver du nødt til først at lave et random valg af af tabel, og så udvælge en random post derfra.
Avatar billede nomisweb Nybegynder
17. marts 2006 - 09:29 #5
OK, det lyder som en fin ide med 2 gange random, hvis altså jeg kan få hjælp til det!? Jeg har nemlig ingen anelse om hvordan man gør det!
Avatar billede hmortensen Nybegynder
17. marts 2006 - 09:33 #6
Måske sådan her:

$tabeller = array('tabel1', 'tabel2');

shuffle($tabeller);

$result = mysql_query("SELECT * FROM ".$tabeller[0]." ORDER BY RAND() LIMIT 1") or die(mysql_error());

$row = mysql_fetch_array($result) or die(mysql_error());
Avatar billede nomisweb Nybegynder
18. marts 2006 - 17:17 #7
Jeps hmortensen det virker! Tak for det! Så lærte jeg noget nyt! :-)
Kommer du med et svar?!
Avatar billede hmortensen Nybegynder
18. marts 2006 - 17:59 #8
Kommer her.
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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