IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Une boucle while [PHP 5.4]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Une boucle while
    Bonjour,

    j'aimerais savoir comment faire pour afficher une phrase, si une boucle while ne retourne aucun résultat? merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    while ($donnees = mysql_fetch_array($reqliste)){
    ?>
    <tr align="center>...;etc
    <?php
    }
    Bonne journée

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Autrement dit, si la requête n'a renvoyé aucun résultat ?
    Plusieurs possibilités :
    - tester le nombre de données renvoyées avant la boucle (soit par fonction type mysql_num_rows, soit par une requête select COUNT avant)
    - renseigner un booléen dans la boucle et afficher la phrase uniquement si le booléen est faux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $donneesAffichees = false;
    while ($donnees = mysql_fetch_array($reqliste)){
      $donneesAffichees = true;
    ?>
    <tr align="center>...;etc
    <?php
    }
     
    if ($donneesAffichees === false) {
    ?>
    Pas de données !!!<br>
    <?php }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut Une boucle while
    Merci mais ça marche pas.....quand j'insère le code il ne trouve plus aucune formation.....

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 101
    Points : 144
    Points
    144
    Par défaut
    Bonjour,

    Tu devrais relire la signature de Celira

    Si ton code affiche systématiquement qu'il n'y a "Pas de données" c'est peut-être que tu as oublié de passer le flag à TRUE dans la boucle while (ligne 4 du code de Celira).

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut une boucle while
    Oui je sais mais il n'y a pas de message d'erreur, rien ne se passe....

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Peut-on voir le code réel (genre sans les "etc...") ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut une boucle while
    Evidemment, le voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $reqliste = mysql_query("SELECT * FROM conf where date > NOW()- INTERVAL 1 MONTH order by date" );
    $donneesRetour = false;
    while ($donnees = mysql_fetch_array($reqliste))
        $donneesRetour = true;
    {
    ?>
    <tr align="center"><td bgcolor="61172d"><font face="Arial" color="white"><?php echo $donnees['date']; ?><br>Horaire:<br><?php echo $donnees['horaire']; ?></font></td><td><font face="Arial" color="61172d">Conférence</font><br><a href="<?php echo $donnees['chemin']; ?>" target="_blank" title=""><br><?php echo $donnees['intitule']; ?><br></a></td><td><font face="Arial" size=2><?php echo $donnees['objectifs']; ?><br></font></td><td><font face="Arial" size=2><?php echo $donnees['public']; ?></font></td><td><p><blink><a href="http://www.xx.com/bulletin.php?comments=<?php echo $donnees['intitule_conf']; ?> - <?php echo $donnees['date']; ?> & num_formation=<?php echo $donnees['id']; ?>">S'inscrire</a></blink><br><br><font color="#800000" size=1 face="Arial"></font><br></p></td>
    <?php
    }
    if ($donneesRetour === false) {
    ?>
    	Pas de données !!!<br>
    <?php }
    ?>

  8. #8
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ouille mes yeux...

    Si tu indentais ton code correctement, tu te serais rendu compte que ton expression $donneesRetour = true; n'est pas l'intérieur des accolades du while, ce qui fait provoque un comportement totalement différent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php
    $reqliste = mysql_query("SELECT * FROM conf where date > NOW()- INTERVAL 1 MONTH order by date" );
    $donneesRetour = false;
    while ($donnees = mysql_fetch_array($reqliste))
    $donneesRetour = true;
    {
    	?>
    	<tr align="center"><td bgcolor="61172d"><font face="Arial" color="white"><?php echo $donnees['date']; ?><br>Horaire:<br><?php echo $donnees['horaire']; ?></font></td><td><font face="Arial" color="61172d">Conférence</font><br><a href="<?php echo $donnees['chemin']; ?>" target="_blank" title=""><br><?php echo $donnees['intitule']; ?><br></a></td><td><font face="Arial" size=2><?php echo $donnees['objectifs']; ?><br></font></td><td><font face="Arial" size=2><?php echo $donnees['public']; ?></font></td><td><p><blink><a href="http://www.xx.com/bulletin.php?comments=<?php echo $donnees['intitule_conf']; ?> - <?php echo $donnees['date']; ?> & num_formation=<?php echo $donnees['id']; ?>">S'inscrire</a></blink><br><br><font color="#800000" size=1 face="Arial"></font><br></p></td>
    	<?php
    }
    if ($donneesRetour === false) {
    	?>
    	Pas de données !!!<br>
    	<?php 
    }
    ?>
    Note : je n'ai rien modifié à part l'indentation, donc ce code ne marche pas plus qu'avant.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  9. #9
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 010
    Points : 181
    Points
    181
    Par défaut une boucle while
    Ok merci ça marche nickel, ça ce joue pas à grand chose.....encre merci et bonne journée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tkinter] Méthode get() dans une boucle while
    Par Thundie dans le forum Tkinter
    Réponses: 2
    Dernier message: 04/02/2006, 00h06
  2. Problème de SCANF dans une boucle WHILE
    Par FidoDido® dans le forum C
    Réponses: 4
    Dernier message: 30/12/2005, 17h42
  3. [Conception] Problème de test dans une boucle while
    Par Cyrius dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 26/11/2005, 18h07
  4. Réponses: 6
    Dernier message: 17/06/2005, 16h51
  5. [MFC] Dialog dans une boucle while
    Par oxor3 dans le forum MFC
    Réponses: 5
    Dernier message: 23/04/2004, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo