Problème/Question sur le PHP/MySQL

Résolu/Fermé
M4573rPunk - Modifié par M4573rPunk le 23/12/2011 à 13:47
 M4573rPunk - 23 déc. 2011 à 14:00
Bonjour,


cela fait plusieurs jours que je me suis mis au PHP/MySQL. Je suis entrain de m'entraîner en local.

Alors en gros, j'ai une table (joueurs) sur ma BDD qui contient: Id, Gameid, Adresseip.

Mon problème est le suivant: Je cherche à avoir la liste des Id des joueurs qui utilisent la même adresse IP que celle que j'ai prédéfini. Et en plus, j'aimerais les mettre dans des arrays (je ne sais pas si ça se dit comme ça) du style $test['0'], où le nom des joueurs sont disposés dedans.

J'ai déjà fait ceci:
$sql2 = "SELECT Id FROM joueurs WHERE ipadress='127.0.0.1'"; 
$req2 = mysql_query($sql2) or die('SQL ERROR!<br>'.$sql2.'<br>'.mysql_error()); 
$data2 = mysql_fetch_row($req2); 
echo $data2['0'],'</br>'; 
echo sizeof($data2),'</br>';


Mais le problème est que l'array ne comporte QUE le premier ID trouvé.

Donc en gros, j'aimerais que $data2['0'] me sorte le 1er résultat, $data2['1'] le deuxième ainsi de suite. A moins que vous aillez une autre solution au problème.

Merci d'avance :)

6 réponses

Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
23 déc. 2011 à 13:59
Bonjour,

Il suffit d'enregistrer les résultats dans un tableau de variable pour tous les avoir à la fois.


$sql2 = "SELECT Id FROM joueurs WHERE ipadress='127.0.0.1'";  
$req2 = mysql_query($sql2) or die('SQL ERROR!<br>'.$sql2.'<br>'.mysql_error());  

$inc = 0;
while($data2 = mysql_fetch_row($req2)) 
{ 
   $resultat[$inc] = $data2['Id'];
   $inc=$inc+1;
}


Ensuite, tu peux utiliser les formulaires pour faire un menu déroulant.
1
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 337
23 déc. 2011 à 14:00
Pour la liste déroulante, ça donne à peu près ça :

$sql2 = "SELECT Id FROM joueurs WHERE ipadress='127.0.0.1'"; 
$req2 = mysql_query($sql2) or die('SQL ERROR!<br>'.$sql2.'<br>'.mysql_error()); 

echo "<select name="listederoulante">";
 
while ($data2=mysql_fetch_array($req2))
{
echo"<option>".$data2[0]."</option>";
} 
echo "</select>";



Et pour le stocker dans des variables, bah... à l'execution de la requete tout est stocker dans $data2.
1
Neliel Messages postés 6146 Date d'inscription jeudi 9 juillet 2009 Statut Contributeur Dernière intervention 20 mars 2017 1 688
Modifié par Neliel le 23/12/2011 à 13:54
Bonjour,


$sql2 = "SELECT Id FROM joueurs WHERE ipadress='127.0.0.1'";  
$req2 = mysql_query($sql2) or die('SQL ERROR!<br>'.$sql2.'<br>'.mysql_error());  

while($data2 = mysql_fetch_row($req2)) 
{ 
   echo $data2['id'].'</br>';  
   echo sizeof($data2['id']).'</br>'; 
}  



Faut utiliser une boucle while. A chaque tour dans la boucle, c'est l'entrée suivante qui sera enregistrée dans la variable $data2.

Encore une chose, en php, l'opérateur de concaténation est le point '.' et non la virgule ','

"Trotti Trotta, Monsieur P, il y a des anges qui veulent un bisou..."
"Même les joujou de Monsieur P ont besoin de joujou"
0
Stringman621 Messages postés 1305 Date d'inscription mardi 13 décembre 2005 Statut Membre Dernière intervention 1 septembre 2012 337
23 déc. 2011 à 13:53
Bonjour,

Ton problème est que tu prend que le 1er resultat, il faut faire une boucle pour obtenir la totalité des resultats :

$sql2 = "SELECT Id FROM joueurs WHERE ipadress='127.0.0.1'"; 
$req2 = mysql_query($sql2) or die('SQL ERROR!<br>'.$sql2.'<br>'.mysql_error()); 

while ($data2=mysql_fetch_array($req2))
{
echo"$data2[0]";
} 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Merci de vos réponses très rapide !

J'avais déjà vu que je pouvais faire une boucle pour sortir tout les résultats, mais j'aimerais ne pas les afficher (où bien pouvoir les faire afficher dans un menu déroulant). Serait t-il possible de pouvoir les stocker un a un dans des variables ?

Merci d'avance.
0
MERCI Beaucoup ! Problème résolu du coup :)
0