La boucle "for"
Résolu
t671
Messages postés
1475
Date d'inscription
Statut
Membre
Dernière intervention
-
t671 Messages postés 1475 Date d'inscription Statut Membre Dernière intervention -
t671 Messages postés 1475 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans mon script, j'ai mis une boucle for qui me liste les noms de ma table.
Mais quand la lettre de l'initiale du nom change ($i), je voudrais aller à la ligne.
Comment faire ?
Merci
Dans mon script, j'ai mis une boucle for qui me liste les noms de ma table.
$select = 'SELECT nom,COUNT(*) AS nb FROM individus WHERE famille LIKE "%TOTO%" GROUP BY nom ORDER BY nom ASC';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
while ($row = mysql_fetch_array($result))
{
for($i=A;$i<=Z;$i++)
{
$lettre_nom = substr($row['nom'],0,1);
if ($lettre_nom == $i)
{
echo ''.$row['nom'].' ';
}
}
}
Mais quand la lettre de l'initiale du nom change ($i), je voudrais aller à la ligne.
Comment faire ?
Merci
7 réponses
-
Merci titus22. Je comprends un peu ce que tu veux dire, mais j'ai du mal à le mettre par écrit.
Et je vais devoir écrire 26 lignes pour les 26 lettres de l'alphabet !
Ne peut-on pas l'écrire avec $i et $i++ ? -
A quoi te sert le for et le if ?
Pourquoi ne pas faire directement : echo ''.$row['nom'].' ';
Car la en gros si je comprend bien tu fait
i = A
tu regarde si ta variable commence par A, si oui tu l'affiche
i = B
tu regarde si ta variable commence par B, si oui tu l'affiche
...
-
Effectivement, ce serait possible. Mais je suis obligé de répéter 26 fois la même condition. Je voulais l'éviter ..........
-
Oui, j'ai le même résultat. Mais j'aurais voulu éviter de tester 26 fois la première lettre du nom.
Mais faire un <br> quand celle-ci change !-
$select = 'SELECT nom,COUNT(*) AS nb FROM individus WHERE famille LIKE "%TOTO%" GROUP BY nom ORDER BY nom ASC';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$row = mysql_fetch_array($result);
$lettre_nom = substr($row['nom'],0,1);
while ($row = mysql_fetch_array($result))
{
if($lettre_nom != $substr($row['nom'],0,1))
{
echo "<BR>";
$lettre_nom = substr($row['nom'],0,1);
}
echo ''.$row['nom'].' ';
}
-
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Ca me semble pas mal, mais j'ai le msg :
Fatal error: Function name must be a string
pour if ($lettre_nom != ($substr($row['nom'],0,1))) -
Là :
$lettre_nom = substr($row['nom'],0,1); while ($row = mysql_fetch_array($result)) { echo ''.$row['nom'].' '; $lettre_nom = substr($row['nom'],0,1); if ($lettre_nom != substr($row['nom'],0,1)); { echo "<BR>"; $lettre_nom = substr($row['nom'],0,1); } }
J'ai tous les noms, sans saut de ligne ........... -
Bonjour,
Est-ce qu'au final, tu as réussi à faire ce que tu voulais ?