M mikaeled Medlem sedan dec. 2000 157 inlägg Frågan 7 jan. 2001 09:24 #1 Hej,
Jag har ett script som använder sig av mysql-databas. Jag skulle vilja veta koden för hur man gör så att scriptet tar en random rad ut databasen som har värde som är mer än 0 i kolumnenen ID
------------------
//Mikael
W woodi Medlem sedan feb. 2000 1 270 inlägg $res = mysql_query("SELECT COUNT(id) AS cnt FROM tabellen");
$max=mysql_result($res,0,"cnt");
mt_srand((double)microtime()*10000000);
if ($max>1) {
$pick = mt_rand(1,$max);
} else {
$pick = 1;
}
$res = mysql_query("SELECT * FROM tabellen where id=$pick");
------------------
woodi
Svenska FF1
www.johan-skog.nu
[Redigerat av woodi den 07 jan 2001]
R Robban Medlem sedan dec. 1999 2 555 inlägg Annars skall det enligt manualen gå att fixa direkt i MySQL, om man kör version 3.23 eller senare (har inte haft tid att uppgradera, så jag har inte kunnat testa detta):
SELECT * FROM tabellen WHERE id > 0 ORDER BY RAND() LIMIT 1;
------------------
Robban < robban@lipogram.com >
W woodi Medlem sedan feb. 2000 1 270 inlägg Robban
Javisst tusan, det hade jag förträngt! Tack för påminnelsen!
------------------
woodi
Svenska FF1
www.johan-skog.nu
M mikaeled Medlem sedan dec. 2000 157 inlägg men om jag vill skriva ut ett kolumns värde i just den här raden.
Hur gör jag det?
------------------
//Mikael
R Robban Medlem sedan dec. 1999 2 555 inlägg Om du följer woodis val av variabelnamn ovan, och använder:
$res = mysql_query("SELECT * FROM tabellen WHERE id > 0 ORDER BY RAND() LIMIT 1");
(Detta fungerar som sagt bara med version 3.23 eller senare - har du en tidigare version av MySQL får du köra med woodis exempel ovan)
Så skall du kunna plocka ut en kolumn med:
$row = mysql_fetch_array($res);
echo $row["kolumnnamn"];
mysql_free_result($res);
Återigen - har inte testat om det fungerar.
------------------
Robban < robban@lipogram.com >
[Redigerat av Robban den 07 jan 2001]