Utilisation de la boucle for
Résolu
t671
Messages postés
1632
Statut
Membre
-
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
A voir également:
- Utilisation de la boucle for
- Downloader for pc - Télécharger - Téléchargement & Transfert
- Utilisation chromecast - Guide
- Télécharger gratuitement notice d'utilisation - Guide
- Idm for mac - Télécharger - Téléchargement & Transfert
- Instagram for pc - Télécharger - Divers Communication
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
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 !
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 :
A ++ ;o)
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