Remplir un tableau en php

Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   -  
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, je souhaiterai savoir comment remplir un tableau avec des valeurs trouvées par une requête et ensuite choisir au hasard une valeur de ce tableau, voici ce que j'ai fais:

$requete = "SELECT nom_pays FROM pays WHERE niveau_quizz like 0";
$trouver = mysql_query($requete) or (mysql_error());
$nb = mysql_num_rows($trouver);

$tableau=array();

for($i=0; $i<$nb; $i++){
$tableau[$i]=$trouver;
}
echo''.$tableau[$i].'';

or rien n'est affiché donc il n'y a rien dans le tableau

merci

A voir également:

2 réponses

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Salut,

$requete = "SELECT nom_pays FROM pays WHERE niveau_quizz like 0";
$trouver = mysql_query($requete) or (mysql_error());
$nb = mysql_num_rows($trouver);

Ce script ne peut que t'afficher le nombre de résultat.
Si tu souhaites afficher les résultats, il faudra ajouter cette ligne:
$data = mysql_fetch_array($trouver);

echo $data['nom_pays'];

Avec ce code, tu pourras afficher un résultat (le dernier s'il y en a plusieurs).
Si tu souhaites tous les afficher:
while($data = mysql_fetch_array($trouver))
{
echo $data['nom_pays'].'<br/>';
}


Si tu souhaites en revanche choisir un résultat au hasard parmis ceux trouver, je te propose ceci:
// On prépare la requète
$sql = "SELECT nom_pays FROM pays WHERE niveau_quizz LIKE 0";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// Calcul du nombre de résultats
$nb = mysql_num_rows($req);

// On place les résultats dans un tableau
while($data = mysql_fetch_array($req))
{
$resultats[] = $data['nom_pays'];
}

// On prépare un nombre aléatoire entre 0 et le nombre de résultats
$nb_min = 0;
$nb_max = $nb-1;
$nombre = mt_rand($nb_min,$nb_max);

// On affiche le résultat aléatoire
echo $resultats[$nombre];
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
Ok j'ai copié ce que tu as fais, ça marche nikel, le problème est ce que j'ai rajouté, c'est a dire allez chercher dans la bdd ce qui correspond a ce qui a été choisi au hasard, voici:

$requete="SELECT nom_pays FROM pays WHERE nom_pays LIKE ".$resultats[$nombre]."";
$requ = mysql_query($requete) or die('Erreur SQL !<br />'.$requete.'<br />'.mysql_error());

while($donnees = mysql_fetch_array($requ)){
echo'<img id=fl src=img/drapeau/'.$donnees['id'].'.png border=2 >';
}


et voci l'erreur que j'ai:

SELECT id FROM pays WHERE nom_pays LIKE Danemark
Unknown column 'Danemark' in 'where clause

je comprends l'erreur mais je ne vois pas comment la résoudre merci
0
arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   475
 
Dans ce cas, on va faire les choses autrement:
// On prépare la requète
$sql = "SELECT id FROM pays WHERE niveau_quizz LIKE 0";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());

// Calcul du nombre de résultats
$nb = mysql_num_rows($req);

// On place les résultats dans un tableau
while($data = mysql_fetch_array($req))
{
$resultats[] = $data['id'];
}

// On prépare un nombre aléatoire entre 0 et le nombre de résultats
$nb_min = 0;
$nb_max = $nb-1;
$nombre = mt_rand($nb_min,$nb_max);

// On affiche le résultat aléatoire
$id = $resultats[$nombre];
$sql = 'SELECT * FROM pays WHERE id="'.mysql_real_escape_string($id).'"';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

Cette dernière requête te récupère toutes les données correspondant au résultat aléatoire.
Si tu souhaites seulement utiliser l'id de ce résultat pour afficher le drapeau (ce qui semble être le cas d'après ton dernier exemple, tu n'as pas besoin de cette dernière requête.
Dans ce code, j'ai placé l'id au lieu du nom du pays dans le tableau. La deuxième requête te permet d'avoir les deux.
0
Mickael86480 Messages postés 660 Date d'inscription   Statut Membre Dernière intervention   35
 
Okey ça marche, merci, maintenant voici un lien vers un ancien post, mais personne ne m'a répondu, peut-être que tu peux m'aider :) :

https://forums.commentcamarche.net/forum/affich-21004377-variable-place-aleatoirement-radio-bouton-php#p21004377

merci
0