Aller au contenu

Récupération de plusieurs données


theprogrammeur

Sujets conseillés

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.

Lien vers le commentaire
Partager sur d’autres sites

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

Lien vers le commentaire
Partager sur d’autres sites

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 :P

Donc $lien est une "array de arrays" !

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Et bien tout simplement avec les affichages de $lien[0][0], $lien[0][1] ... $lien[0][4], non? :whistling:

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
}

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...