Avatar billede Slettet bruger
10. januar 2003 - 14:32 Der er 12 kommentarer og
2 løsninger

Random udtræk fra mysql

Hejsa..

Jeg vil random tække EN row ud, og vise den på skræmen.
Jeg har kigget på http://www.eksperten.dk/spm/37913 men kan ikke få til det at funke...

Hvad er der galt her?

$result = mysql_query("SELECT *,((id*0)+rand()) as random FROM $mySQL_tabl ORDER BY random limit 1");

$a = mysql_fetch_array($result);
Avatar billede bigo Nybegynder
10. januar 2003 - 14:37 #1
2 ting.

den 1.ste: hvad skal du bruge id*0 til ??

den 2.den: prøv og lav

mysql_query("SELECT *,((id*0)+rand()) as random FROM $mySQL_tabl ORDER BY random limit 1") or die (mysql_error());
Avatar billede Slettet bruger
10. januar 2003 - 15:05 #2
Burde virke!

$sql = "select * from tabelnavn where 1";
$result = mysql_query($sql);
$rows = mysql_num_rows($result);
if($rows>0)
{
$random = round(rand(0, $rows-1));
mysql_data_seek($result, $random);
$randomrow = mysql_fetch_array($result);
print_r($randomrow);
}
Avatar billede Slettet bruger
10. januar 2003 - 15:21 #3
Hmm.. regin: Jeg kan ikke helt se hvad det er du gør, kan du sætte nogle kommentare?
Avatar billede Slettet bruger
10. januar 2003 - 15:22 #4
Fejlen er forresten:

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in
Avatar billede Slettet bruger
10. januar 2003 - 15:32 #5
sql = "select * from tabelnavn where 1";
/*Vælger alle rækker som opfylder betingelserne!*/
$result = mysql_query($sql);
$rows = mysql_num_rows($result); //Antal rækker
if($rows>0)
{
$random = round(rand(0, $rows-1));//Et random tal mellem 0 og antalrækker-1
mysql_data_seek($result, $random);//Vælger rækken til random tallet
$randomrow = mysql_fetch_array($result);
/*fetcher rækken - som mysql_fetch_row() - bare med rækkenavn også*/
print_r($randomrow);//udskriver rækken på simpel form!
}
Avatar billede Slettet bruger
10. januar 2003 - 15:38 #6
Prøv med:
$result = mysql_query("SELECT * FROM $mySQL_tabl where * ORDER BY random limit 1");

og vær sikker på at $mySQL_tabl indeholder det rigtige tabelnavn!
Avatar billede Slettet bruger
10. januar 2003 - 15:54 #7
Jamen det er næsten lige hvad jeg skifter så ligger fejlen her:

$a = mysql_fetch_array($result);
Avatar billede Slettet bruger
10. januar 2003 - 16:08 #8
This should do it!
$sql = "SELECT * , rand() as random FROM `$mySQL_tabl` WHERE 1 LIMIT 0, 1";
$result = mysql_query($sql);
Avatar billede Slettet bruger
10. januar 2003 - 16:09 #9
Hmmm... ups... lille fejl... nu skulle den være der!

$sql = "SELECT * , rand() as random FROM `statistic` WHERE 1 ORDER BY random LIMIT 0, 1";
$result = mysql_query($sql),
Avatar billede tipsen Nybegynder
10. januar 2003 - 22:00 #10
Hmmm - lige ved og næsten, slår ingen mand af hesten...

Sådan gøres det:

$sql = "SELECT * FROM $mySQL_tabl ORDER BY RAND() LIMIT 0,1"
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($res) or die(mysql_error());
print_r($row);
Avatar billede enragedbudda Nybegynder
10. januar 2003 - 22:01 #11
kunne man ikke osse bruge rand()? det har jeg da gjort...
Avatar billede tipsen Nybegynder
10. januar 2003 - 22:08 #12
Det er da også det der bruges!?
Avatar billede Slettet bruger
13. januar 2003 - 08:47 #13
Regin: ligger du et svar?

Jeg har valg at bruge tipsen's, da det er den korteste, og så længe den gør hvad den skal, kan man lige så godt holde det simpelt.. :)

Men synes i begge skal ha point, regin har trodsalt bruge en del tid på det..
Avatar billede Slettet bruger
13. januar 2003 - 08:50 #14
whatever!?
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