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 :

Manque première ligne dans boucle while


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 12
    Points
    12
    Par défaut Manque première ligne dans boucle while
    Bonjour.
    Est-ce-que quelqu'un pourrait m'expliquer pourquoi ma boucle while me renvoie touts les résultats sauf le premier ?
    Merci beaucoup d'avance. :-)

    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
    17
    18
    19
    20
    21
    22
     
    $req = $bdd->prepare('SELECT ville_nom_reel, ville_population_2010, ville_code_postal, ville_surface, ville_arrondissement, departement_nom, ville_departement 
                                  FROM villes_france_free INNER JOIN departement ON villes_france_free.ville_departement = departement.departement_code 
                                  WHERE departement_nom = :dept AND ville_population_2010 <= :typepop 
                                  ORDER BY ville_nom_reel');
     
    $req->execute(array('dept' => $_POST['dept'], 'typepop' => $_POST['typepop']));
     
    $donnees = $req->fetch();
     
    	if (is_array($donnees))
    	{
                while ($donnees = $req->fetch())
    		{	
    		   echo '<ul><li><span>' . $donnees['ville_nom_reel'] . '</span> (' . $donnees['ville_population_2010'] . ' habitants) cp ' . $donnees['ville_code_postal'] . ' - 
                       spf ' . $donnees['ville_surface'] . ' - arr ' . $donnees['ville_arrondissement'] .'</li></ul>';
    		}
    	}
    	else
    	{
               echo 'Pas de résultats';
    	}

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as deux fois le fetch()
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    Bonjour.
    Je ne vois pas trop comment faire.
    J'ai essayé ceci :
    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
    17
    18
    19
    20
    21
     
    $req = $bdd->prepare('SELECT ville_nom_reel, ville_population_2010, ville_code_postal, ville_surface, ville_arrondissement, departement_nom, ville_departement 
                                  FROM villes_france_free INNER JOIN departement ON villes_france_free.ville_departement = departement.departement_code 
                                  WHERE departement_nom = :dept AND ville_population_2010 <= :typepop 
                                  ORDER BY ville_nom_reel');
     
    $req->execute(array('dept' => $_POST['dept'], 'typepop' => $_POST['typepop']));
     
    while ($donnees = $req->fetch())
     
    	if (is_array($donnees))
    	{
     
    	   echo '<ul><li><span>' . $donnees['ville_nom_reel'] . '</span> (' . $donnees['ville_population_2010'] . ' habitants) cp ' . $donnees['ville_code_postal'] . ' - 
               spf ' . $donnees['ville_surface'] . ' - arr ' . $donnees['ville_arrondissement'] .'</li></ul>';
     
    	}
    	else
    	{
               echo 'Pas de résultats';
    	}
    J'ai touts les résultats maintenant, mais, lorsque le tableau est vide, 'Pas de résultats' ne s'affiche pas.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2017
    Messages : 16
    Points : 12
    Points
    12
    Par défaut
    RE

    J'ai trouvé la solution dans le forum PHP/MYSQL.
    C'est plus simple avec la fonction Count.

    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
    17
    18
    19
     
    $req = $bdd->prepare('SELECT ville_nom_reel, ville_population_2010, ville_code_postal, ville_surface, ville_arrondissement, departement_nom, ville_departement 
                                  FROM villes_france_free INNER JOIN departement ON villes_france_free.ville_departement = departement.departement_code 
                                  WHERE departement_nom = :dept AND ville_population_2010 <= :typepop 
                                  ORDER BY ville_nom_reel');
     
    $req->execute(array('dept' => $_POST['dept'], 'typepop' => $_POST['typepop']));
     
    $nbLignes = $req->rowCount();
     
    		if ($nbLignes == 0)
    		{
    		   echo 'Pas de résultats';
    		}
    		while ($donnees = $req->fetch())
    		{
    		   echo '<ul><li><span>' . $donnees['ville_nom_reel'] . '</span> (' . $donnees['ville_population_2010'] . ' habitants) cp ' . $donnees['ville_code_postal'] . ' 
                       - spf ' . $donnees['ville_surface'] . ' - arr ' . $donnees['ville_arrondissement'] .'</li></ul>';
    		}
    Merci quand même pour ton aide Sabotage :-)

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

Discussions similaires

  1. [MySQL] manque première ligne lors de ma recherche dans la BDD
    Par ol85000 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 16/07/2016, 12h32
  2. Problème de bouton stop dans boucle while
    Par Simon et ulrich dans le forum LabVIEW
    Réponses: 4
    Dernier message: 04/08/2011, 10h59
  3. Réponses: 3
    Dernier message: 24/06/2009, 19h34
  4. Réponses: 3
    Dernier message: 17/08/2007, 13h47
  5. Requete SQL dans boucle while
    Par vince_grenoblois dans le forum MS SQL Server
    Réponses: 18
    Dernier message: 04/08/2006, 20h41

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