<?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
// ...
?>