Utilisation de la boucle for
Résolu
t671
Messages postés
1478
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5413 Statut Membre -
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,
Dans mon script je lis les noms d'une table et je les affiches avec la première lettre du nom.
Pourquoi l'affichage de l'alphabet s'arrête à la lettre W, alors que j'ai un nom avec la lettre Z (Zorro) ?
Merci
Dans mon script je lis les noms d'une table et je les affiches avec la première lettre du nom.
for($i=A;$i<=Z;$i++)
{
while ($row = mysql_fetch_array($result))
{
$lettre_nom = substr($row['nom'],0,1);
if ($lettre_nom == $i)
{
echo ''.$row['nom'].' ';
}
else
{
$i=$i++;
echo $i++;
echo '<br>';
echo $i;
echo ' ';
}
}
Pourquoi l'affichage de l'alphabet s'arrête à la lettre W, alors que j'ai un nom avec la lettre Z (Zorro) ?
Merci
5 réponses
-
parce que ta boucle for doit être avec des nombres et pas des lettres
essayes d'ajouter +1 à une lettre ?
donc ton affichage se fait par la boucle while uniquement
<?php $array_lettre=array(); while ($row = mysql_fetch_array($result)) { $lettre_nom = substr($row['nom'],0,1); $array_lettre[]=$lettre_nom; //on empile dans l'array } //tri de l'array par ordre alpha sort($array_lettre); //affichage foreach($array_lettre as $value){ echo '<br />'.$value; } -
OK ! Merci Alain_42 ! Je pensais qu'on pouvais utiliser la boucle for avec l'alphabet .....
Là, je voudrais afficher les noms associés à la lettre de l'alphabet.
Soit :
A ALBERT ARTHUR ANTOINE
B BERNARD
C CHARLES CHRISTIAN
D
E EMILE ..................
J'y arrive pas ! -
essayes comme ça (seules les lettres ayant un prénom sont affichées:
<?php $array_lettre=array(); while ($row = mysql_fetch_array($result)) { $lettre_nom = substr($row['nom'],0,1); //on va faire un array a deux dimentions première dimention les lettres, deuxieme les noms correspondants (il peut y en avoir plusieurs pour chaque lettre ?) $array_lettre[$lettre_nom][]=$row['nom']; //on empile dans l'array } //tri de l'array par ordre alpha suivant clef ksort($array_lettre); //affichage foreach($array_lettre as $clef=>$s_array){ $liste='<br />'.$clef; for($i=0;$i<sizeof($s_array);$i++){ $liste.=' '.$s_array[$i]; } echo $liste; } ?> -
Merci Alain_42, mais j'ai l'erreur :
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
Et moi je viens de trouver ceci qui fonctionne :$lettre_nom1 = substr($row['nom'],0,1); echo $lettre_nom ; echo ' '.$row['nom'].' '; while ($row = mysql_fetch_array($result)) { $lettre_nom = substr($row['nom'],0,1); if ($lettre_nom == $lettre_nom1) { echo ' '.$row['nom'].' '; $lettre_nom = substr($row['nom'],0,1); } else { echo '<br>'; echo $lettre_nom ; echo ' '.$row['nom'].' '; $lettre_nom1 = substr($row['nom'],0,1); } }
A ++ ;o) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
tu as cette reeur parce que dans ton script avant la ligne mysql_fetc_array() il y a un pb avec la requette