PB avec boucle pour un affichage de données ds 1 tableau

Petit nouveau ! | 1 Messages

11 janv. 2006, 18:22

Bonjour, voilà ce à quoi je souhaite arriver:
Une premiere requete SLQ me donne l'identifiant et le nom d une personne. Le resultat de la reqeute liste dans un <td> le nom des (disons 30) personnes, avec recuperation de leur id pour une exploitation future
<td><? 
$query = "SELECT * FROM personnes"; 
$result = mysql_query($query); 
while ($val = mysql_fetch_array($result)) { ?> 
<? $zou=$val["idpersonne"];?> 
<? echo $val["nom"];?><br> 
<? } 
?> 
</td>


Dans le <td>suivant, je souhaiterais afficher par exemple, la ville de la personne, résultat d'une requete dans une autre table
<td><? 
$query = "SELECT * FROM ville where nomville='$zou'"; 
$result = mysql_query($query); 
while ($val = mysql_fetch_array($result)) { ?> 
<? echo $val["ville"];?><br> 
<? } 
?> 
</td>


Voilà, en faisant ce script, j'ai bien tous les noms de personnes listés, mais dans mon 2eme <td>, les villes corresponantes aux personnes ne sont pas listées.
Je crois que mon problème vient d'une boucle. Pouvez vous éclairer ma lanterne.
D avance merci
David

Mammouth du PHP | 19672 Messages

11 janv. 2006, 18:33

Comme c'est ton premier post, j'ai procédé aux corrections, mais je t'invite à lire les règles du forum : l'article 2 en particulier. Le formulaire de saisie de message offre des option et on peut mettre du code en encadrant celui-ci avec l'utilisation des boutons [code] ou [php] : utilise-les.

Pour ton problème maintenant, je suis sûr que tu peux simplifier en ne faisant qu'une seule requête avec une jointure. Mais avec un SELECT *, je ne vois pas trop la structure de ta base. Donc donne nous la structure de tes tables (nom des champs en particulier et ce qui relie les tables entre elles). Sur cette base, on pourra te suggérer une solution utilisable.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 8 Messages

12 janv. 2006, 00:13

Dans la requête de ton deuxième <td>, tu sélectionne les données qui ont comme valeur $zou au champ "nomville", mais dans ta boucle, tu tentes d'afficher $val["ville"]. Serait-ce plutôt $val["nomville"] ?

Si ce n'est pas le cas, vérifie bien le nom des tables, ça peut venir de là.