theprogrammeur Posté 20 Mai 2007 Posté 20 Mai 2007 Re-bonjour Après avoir réusssi à insérer des données dans ma base, je voudrais bien en sélectionner 5 aléatoirement. Pour ce faire, j'ai utilisé ce script: $connection = mysql_connect("***", "***", "***");if (!$connection) { die('Connexion impossible : ' . mysql_error());}mysql_select_db("*****");$requete = 'SELECT * FROM table ORDER BY RAND() LIMIT 5';$mysql_reponse = mysql_query($requete);$i = 0;while($i<=5){$lien = mysql_fetch_row($mysql_reponse);$i++;}echo $lien[0];mysql_close($connection); Ce n'est qu'un script pour vérifier qu'il sélectionne bien 5 données différentes et qu'il les stocke dans un Array. C'est pourquoi j'ai voulu tester une des entrées de l'Array en l'écrivant. Seul problème, rien ne s'affiche sur ma page. Pourtant je ne vois pas d'erreurs. Quelqu'un peut-il m'aider? Merci d'avance.
Dan Posté 20 Mai 2007 Posté 20 Mai 2007 Tu n'as pas défini $lien comme étant une array .... donc $lien[0] n'existe pas Remplace: $lien = mysql_fetch_row($mysql_reponse); par $lien[] = mysql_fetch_row($mysql_reponse); Dan
theprogrammeur Posté 20 Mai 2007 Auteur Posté 20 Mai 2007 J'ai fait comme tu l'as proposé mais alors dans toutes les 'cases' des l'array il est écrit....Array. Ex:je echo $lien[0] affiche Array au lieu du contenu!
Dan Posté 20 Mai 2007 Posté 20 Mai 2007 Que te donne un print_r($lien); ? Il est logique que $lien[0] te donne une array parce que le résultat de mysql_fetch_row() est une array Donc $lien est une "array de arrays" !
theprogrammeur Posté 20 Mai 2007 Auteur Posté 20 Mai 2007 print_r donne ceci: Array ( [0] => Array ( [0] => info1 ) [1] => Array ( [0] => info8 ) [2] => Array ( [0] => info4 ) [3] => Array ( [0] => info12 ) [4] => Array ( [0] => info2 ) [5] => ) C'est parfait, il a bien sélectionné les 5 données aléatoirement. Seulement, mon but n'était pas de les écrire dans la page mais de les écrire dans un fichier .txt sous cette forme: <li>info_aleatoire1</li><li>info_aleatoire2</li><li>info_aleatoire3</li><li>info_aleatoire4</li><li>info_aleatoire5</li> Je ne voulais les écrire que pour voir comment ça s'affichait et si jamais ça s'affichait seulement dans une seule variable, j'aurais utilisé la fonction explode() pour diviser la grosse variable dans un array. La seule chose qu'il me manque pour l'instant c'est de pouvoir arriver individuellement à chaque case de l'array pour mettre <li> devant et </li> après.
Dan Posté 20 Mai 2007 Posté 20 Mai 2007 Et bien tout simplement avec les affichages de $lien[0][0], $lien[0][1] ... $lien[0][4], non? Mais si tu n'as pas besoin de cette array plus tard, tu peux aussi remplacer ce code dans ta source: while($i<=5){ $lien[] = mysql_fetch_row($mysql_reponse); $i++;} par while($lien = mysql_fetch_row($mysql_reponse)) { print "<li>".$lien[0]."</li>"; // ou fputs(...) si tu préfères l'écrire dans un fichier }
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant