Afficher le nombre de ligne d'une table MySQL

Fermé
Khrea - 28 mai 2009 à 21:52
wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 - 29 mai 2009 à 04:12
Bonjour à tous,
Mon problème est le suivant : Je cherche à générer une page aléatoire sur mon site, et ceci en "piochant" au hasard une ligne d'une de mes tables de ma base de données MySql.
Je me suis renseigné au près de mon ami Google, mais n'ai rien trouvé de bien concluant.
J'ai tenté le bout de code suivant :


$max = mysql_query('SELECT COUNT(*) FROM cours');
srand();
$aleatoire = rand(1, $max);
while ($donnees = mysql_fetch_array($max))
{
echo '<span class="decalage" <a href="cours.php?page=' .$aleatoire . '">Aléatoire</a>';
}


Ce qui m'affiche l'erreur : Warning: rand() expects parameter 2 to be long, resource given in....

Je ne sais pas si mon code est partiellement ou totalement faux, pour ce que je désire obtenir. Est-ce que l'un d'entre vous aurait l'extrême bonté de m'éclairer ? =P
A voir également:

1 réponse

wido22 Messages postés 19 Date d'inscription samedi 23 mai 2009 Statut Membre Dernière intervention 1 juin 2009 31
29 mai 2009 à 04:12
Si tu veux avoir une variable qui correspond au nombre d'entree dans une table utilise plutot :

$max = mysql_query('SELECT COUNT(*) AS nb_entree  FROM cours');
$donnees = mysql_fetch_array($max)

srand();
$aleatoire = rand(1, $donnees['nb_entree']-1);

echo '<span class="decalage" ><a href="cours.php?page=' .$aleatoire . '">Aléatoire</a></span>'; 



Avec $donnees['nb_entree'] qui est egal au nombre total de ligne que tu as dans ta table. Fait attention car pour MYSQL, la premiere ligne correspond a l'entree 0 d'ou le "-1".

Par contre, je ne suis pas sur pour le random.
1