Hallo,

Weet iemand hoe ik kan maken dat er uit een tabel rondom een rij wordt gekozen?
database neem ik aan?

kan je doen met gewoon een for-loop in je php...
Je zou het bijna zelf kunnen bedenken:

SELECT
  koloma,
  kolomb,
  kolomc
FROM
  tabelnaam
ORDER BY
  RANDOM()
LIMIT 1;

Mocht je een held zijn en MySQL gebruiken, dan heb je RAND() nodig.

Een for-loop is een redelijk domme aanpak, je haalt een miljoen records op en gaat er dan random ééntje uithalen? Hoezo overbodig...

Edit:
RAND als in randdebiel... Geeft goed weer hoe MySQL met jouw data omgaat. ;)
pgFrank schreef op 25.02.2009 18:36
Je zou het bijna zelf kunnen bedenken:

SELECT
  koloma,
  kolomb,
  kolomc
FROM
  tabelnaam
ORDER BY
  RANDOM()
LIMIT 1;

Mocht je een held zijn en MySQL gebruiken, dan heb je RAND() nodig.

Een for-loop is een redelijk domme aanpak, je haalt een miljoen records op en gaat er dan random ééntje uithalen? Hoezo overbodig...

Edit:
RAND als in randdebiel... Geeft goed weer hoe MySQL met jouw data omgaat. ;)


Werkt niet echt...

Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/1/public/sites/www.mijn-site.nl/test.php on line 12
Quote per ongeluk in plaats van editten :P. Deze kan weg.
Post je relevante script even

	$test1          = mysql_query("SELECT * FROM `test` ORDER BY `RANDOM()`");
	$test           = mysql_fetch_object($test1);
Het is ORDER BY RAND();

Maar waarom die backticks? En waarom controleer je niet of je query gelukt is voordat je hem gaat fetchen?
Dan krijg ik dit:

Catchable fatal error: Object of class stdClass could not be converted to string in /storage/mijndomein/users/1/public/sites/www.mijnsite.nl/test.php on line 13
<?php
$query = "SELECT * FROM test ORDER BY RAND() LIMIT 1";
$result = mysql_query($query);

if($result && mysql_num_rows($result) == 1)
{
$output = mysql_fetch_object($result);
}else{
echo 'Geen resultaat en/of query mislukt';
}
?>

Reageren