2012-04-09 1 views
0

Ich habe eine SQL-Tabelle mit nur zwei Spalten: "Nameid" und "Name". Ich möchte einen zufälligen Namen aus der Datenbank erhalten.Lehre: Holen Sie sich einen zufälligen Namen aus einer Tabelle von Namen

Bevor ich tat dies über:

$result = mysql_query("SELECT * FROM nametable",$db); 
    $number = mysql_num_rows($result); 
    $random = rand(1,$number); 
    list($name) = mysql_fetch_row(mysql_query("SELECT name FROM nametable WHERE nameid=$random",$db)); 

Wie kann ich mit Lehre das gleiche tun?

Antwort

0

MySQL hat eine Funktion zum Erzeugen zufälliger Fließkommawerte RAND(). Bei der Sortierung werden die Namen nach dem Zufallsprinzip sortiert. Danach wählen Sie einfach den ersten, zufällig geordneten Namen.

SELECT name FROM nametable ORDER BY RAND() LIMIT 1 

Mit Lehre dieses

$name = Doctrine::getTable('nametable') 
    ->createQuery() 
    ->select('name') 
    ->orderBy('RAND()') 
    ->fetchOne(); 
+0

Dank verwendet werden könnte, fertig! Ich glaube nicht, dass Sie wissen, wie das in CodeIgniter2 + Doctrine2 aussehen würde. :) – jeremy

+0

Ich glaube, die Verwendung von Doctrine mit CodeIgniter wird dasselbe wie oben sein. Wenn Sie den Active Record von Codeigniter benutzen wollen, wäre das etwas wie '$ this-> db-> select ('name') -> von ('nametables') -> order_by ('name', 'random') - > Grenze (1) '. – kba