phpbar.de logo

Mailinglisten-Archive

Re: mysql select AND rand()
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mysql select AND rand()



> zufällig eionen auszuwählen. Soll sowas werden wie Zufallslink, der aber ein paar Bedingungen entspricht. 
> Benutze PHP zum Datenbankzugriff.

Deutsche PHP-Group: php-list_(at)_egroups.com (Da bin ich auch)

So hab ich es gemacht:

<?php //3

function run_sql($stmt,$&result)
{ // Fürt das Statement aus und setzt den Zeiger $result auf die Ergebnismenge.
  // [...] Der Code ist &copy;
}

function run_sql($stmt,$&result)
{ // Fürt das Statement aus und setzt den Zeiger $result auf die Ergebnismenge.
  // Zusätzlich wird der erste Wert des ersten Datensatzes zurückgegeben 
  // (gut für select count(*))
  // [...] Der Code ist &copy;
}

// das "order" könnte für Dich wichtig sein... muß es aber nicht.
$Bedingung=" from tblname where a=b and c=d and a>b order by a"; 

// setze neuen Startwert für rand und
// wähle einen Datensatz aus
srand(mktime()); 
$max=run_sql_count("select count (*) ".$Bedingung,$result);
$pos=round(rand(1,$max)); 

$stmt="select *".$Bedingung." limit $pos,1"; // hier ist der Clou
run_sql($stmt,$result);
if ($record=mysql_fetch_object($result))
{ echo $record->id;
  // That's it
  // Nun haben wir den Record, also der $pos. von $max, die
  // der Bedingung genügen
};

?>

Es geht auch etwas kürzer, aber dann bringt es Dir nicht mehr so viel.
Außerdem will ich Dir ja nicht den ganzen Spaß nehmen. Noch Fragen? :-)

The sun is shining.

P. Bierans

---
*** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive