Aller au contenu

Sujets conseillés

Posté

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.

Posté

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

Posté

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!

Posté

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" !

Posté

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.

Posté

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
}

Veuillez vous connecter pour commenter

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



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