<?php

// ------------------------------------------------------------------------- //
// Ce script permet d'extraire d'une table MySQL les données d'un enr. tiré  //
// aléatoirement avec une seule requete SQL (pas de code PHP pour le tirage  //
// aléatoire).                                                               //
// ------------------------------------------------------------------------- //
// Auteur: Yann Lugrin                                                       //
// Email:  ylugrin@gmproject.net                                             //
// Web:    http://www.gmproject.net/                                         //
// ------------------------------------------------------------------------- //

// Configuration d'accès à la base de donnée
$dbHost      = 'localhost';                    // Host (localhost)
$dbUser      = 'user';                         // Utilisateur de la base
$dbPswd      = 'password';                     // Mot de passe de l'utilisateur
$dbName      = 'base';                         // Nom de la base de donnée

// Configuration de la requete
$randTable       = 'table';                    // Table ou doit être fait le tirage
$randColOrder    = 'colonne';                  // Col. Numérique (Clé primaire)
                                               // pour MySQL < 3.23.3
$randCondition   = "where MY_COLONNE = 'xxx'"; // Condition éventuel de la requete
$randNbrResultat = 1;                          // Nombre de ligne à renvoyer

// connexion à la base
$dbh = mysql_connect( $dbHost, $dbUser, $dbPswd );
mysql_select_db( $dbName, $dbh );

// Requete SQL qui retourne "$nbrResultat" ligne aléattoirement
// MySQL >= 3.23.3 : $sql = "select * from $dbTable $dbCondition order by rand()
// limit $randNbrResultat";
$sql  = "select *, $randColOrder*0+rand() as col_order ";
$sql .= "from $randTable $randCondition ";
$sql .= "order by col_order limit $randNbrResultat";

// Traitement du résultat
$resultat = mysql_query( $sql, $dbh );
while(
$ligne = mysql_fetch_row( $resultat ) ) {
    
// Traitement de chaque ligne
}

// Autres traitements
// ...

?>