requete mysql

bob26
Invité n'ayant pas de compte PHPfrance

29 août 2011, 19:21

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)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 août 2011, 00:09

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.

@+
Il en faut peu pour être heureux ......

ViPHP
AB
ViPHP | 5818 Messages

30 août 2011, 00:51

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

bob26
Invité n'ayant pas de compte PHPfrance

30 août 2011, 18:12

merci à tous les 2
petit à petit j'apprend
slt