Version complète: sur le forum Webmaster Hub : [REGLE]Faire apparaitre des données aléatoirement
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
tankia
Bonsoir tout le monde.

Je suis débutant en PHP et j'aimerais savoir comment faire apparaitre des données tirées d'une base de donnée aléatoirement sur un site.

Par exemple la base contient une 10aine de liens de sites et à chaque actualisation de la page le lien change aléatoirement.

J'espère être assez clair, j'attends votre aide wink.gif
Light_at_the_end
Tout d'abord, le plus facile c'est bien sur d'indexer ses liens dans ta page de donnée avec un numéro automatique que tu nommes par exemple : num

Ensuite, une fois que c'est fait,
tu utilises la fonction rand(a,B) qui génère un nombre aléatoirement
Si tu sais le nombre de liens que tu possèdes, alors tu mets :
$var = rand(1,nombredeliensautotal)
Puis ensuite tu mets une requete mysql pour extraire ta donnée

Par exemple si ta table s'appelle 'Liens' tu fais
CODE
<?
$var = rand(1,nombredeliensautotal);
$res=mysql_query("SELECT * FROM Liens WHERE num='".$var."'");
$tab=mysql_fetch_array($res, MYSQL_ASSOC);
// ca ce sont les accès à la base de données puis ensuite :
echo "".$tab['num']"";
// L'écho permet ici de faire afficher le numéro automatique, mais tu peux faire afficher n'importe quel valeur des champs

?>

Voila en esperant que ca t'aide smile.gif
MarvinLeRouge
Salut,

Il me semble que tu peux aussi tout bonnement mettre
CODE
ORDER BY RAND() LIMIT 1

à la fin de ta requète
tankia
ok donc si je comprends bien ça donne :


CODE
<?php

$liendb = mysql_connect("mabdd", "monlogin", "monpassword");
mysql_select_db ("mabdd");

$sql = "SELECT * FROM liens ORDER BY rand() LIMIT1";
$resultat = mysql_query ($sql);
$liens = mysql_fetch_array ($resultat);

echo $liens['num'];

mysql_close($liendb);

?>
tankia
ça me met :

CODE
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/users/t/tankia/www/annuaire/index.php on line 8


Et sinon là j'essaie de faire apparaître un seul truc aléatoirement mais moi j'aimerais faire apparaitre un nom de site son lien et sa description...

Edit : Vu que je suis débutant en php il me faudrait une aide et des explications s'il vous plait.
MarvinLeRouge
Mets un espace entre le limit et le chiffre qui le suit (limit sert à indiquer le nombre maximum de résultats).
Rapace15
CITATION(tankia @ mercredi 01 juin 2005, 21h27)
$sql = "SELECT * FROM liens ORDER BY rand() LIMIT1";


Tu as apparemment oublié de mettre un espace entre LIMIT et 1.
tankia
Merci beaucoup ça marche parfaitement !
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.