Page 1 sur 1

requete mysql

Posté : 29 août 2011, 19:21
par bob26
bonjour
je débute en php
j'ai une table mysql (liste_com) avec 6 champs (le 1er (numéro) contient le numéro de commune ; le 2eme (COMMUNE) contient le nom de la commune ... etc)
j'ai fait une requête pour extraire de cette table les noms de communes commençant par une lettre donnée (dans ce cas la lettre F) :
....
$requete = "SELECT COMMUNE FROM liste_com WHERE COMMUNE Like 'F%' order by COMMUNE ";
$resultat = mysql_query($requete, $connexion) or die("impossible" . mysql_error());
$row = mysql_fetch_assoc($resultat);
$total = mysql_num_rows($resultat);
for ($i=0 ; $i < $total ; $i++)
{
echo $row ["numéro"] ;
}
mais apparemment dans le résultat il n'y a que la 1ére commune trouvée (et répétée 4 fois car il y a 4 noms commençant par la lettre F)
donc 2 questions :
- pourquoi les communes suivantes n'apparaissent elles pas ?
- comment faire pour n'extraire que les 2 premiers champs ? (numéro et COMMUNE)

Re: requete mysql

Posté : 30 août 2011, 00:09
par moogli
salut

ton problème est dû au fait que tu ne fait pas avancer le pointeur dans le jeux de résultat.

si tu avait 500 communes commençant par tu aurais eu 500 fois la 1ère d'afficher :)

regarde la fonction mysql_fetch_array

et compare avec ton code.

@+

Re: requete mysql

Posté : 30 août 2011, 00:51
par AB
...
- comment faire pour n'extraire que les 2 premiers champs ? (numéro et COMMUNE)
Pour la question précédente moogli t'a déjà répondu (même principe avec mysql_fetch_assoc); Il faudra donc virer ce "for ($i=0 ; $i < $total ; $i++)" et le remplacer simplement par un "while($row = mysql_fetch_assoc($resultat))"

Sinon pour le reste dans ta requête tu sélectionnes uniquement le champ "COMMUNE"; il faut sélectionner aussi le champ "numéro" si tu veux pouvoir le récupérer : "SELECT numéro, COMMUNE FROM..."

Re: requete mysql

Posté : 30 août 2011, 18:12
par bob26
merci à tous les 2
petit à petit j'apprend
slt