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

PHP & Base de données Discussion :

SQL ORDER BY affichage des informations.


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2020
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2020
    Messages : 60
    Par défaut SQL ORDER BY affichage des informations.
    Bonjour,

    J'ai un problème, il omet à chaque fois un enregistrement avec ORDER BY ASC ou ORDER BY DESC.

    Il omet un aussi un enregistrement sans ORDER BY.

    j'ai 4 enregistrements les informations suivantes sont dans le champ cantons : Neuchâtel, Obwald, Saint-Gall, Schwytz.

    Si je met dans ma requête SQL ORDER BY ASC, PHP me retourne :

    Obwald
    Saint-Gall
    Schwytz

    et il ne retourne pas Neuchâtel.
    -

    Si je met dans ma requête SQL ORDER BY DESC, PHP me retourne :

    Saint-Gall
    Obwald
    Neuchâtel

    et il ne retourne pas Schwytz.



    si je ne mets ni ORDER BY ASC OU ORDER BY DESC il me retourne seulement 3 enregistrements les mêmes que pour ORDER BY ASC.


    Que faire pour qu'il retourne les 4 enregistrements ?


    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $sqlCan = "SELECT DISTINCT cantons FROM membres WHERE activation = 1 ORDER BY cantons ASC";
     
    								$reponseCan = $db->query($sqlCan);								
     
    								if ($reponseCan->fetch() == true){
     
    									echo ".........................";
     
    									foreach($reponseCan as $result){
    										if ($result['cantons'] != "")
    										echo "<option>" . $result['cantons']. "</option>";
    									}
    								}
    Merci d'avance !

  2. #2
    Membre émérite Avatar de Willy_k
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    541
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2011
    Messages : 541
    Par défaut
    Salut,
    C'est à cause de $reponseCan->fetch() == true

  3. #3
    Inactif  
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2021
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juin 2021
    Messages : 645
    Par défaut
    Bonjour,

    il faut vraiment revoir l'affichage des données :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $sqlCan = "SELECT DISTINCT cantons FROM membres WHERE activation = 1 ORDER BY cantons ASC";
     
    $reponseCan = $db->query($sqlCan);								
    $resultNbr	= $reponseCan->rowCount();	// nombre de résultats
    $resultAll	= $reponseCan->fetchAll();	// array des résultats
     
    if ( $resultNbr > 0 )
    {
    	echo ".........................";
     
    	foreach($resultAll as $result){
    		if ($result['cantons'] != "")
    		echo "<option>" . $result['cantons']. "</option>"."\n"; // ("\n" : avec passage à la ligne dans le code -> lisibilité)
    	}
    }


  4. #4
    Membre confirmé
    Homme Profil pro
    Webmaster
    Inscrit en
    Juillet 2020
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juillet 2020
    Messages : 60
    Par défaut
    J'ai réussi à résoudre le problème, voir ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    do{
    										foreach($reponseCan as $result){
    											echo "<option>" . $result['cantons']. "</option>";
    										}
    									}while($reponseCan->fetch() == true);

  5. #5
    Expert confirmé
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 329
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 329
    Billets dans le blog
    17
    Par défaut
    Euh, ça ne sert à rien, tu peux faire ton foreach() directement

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

Discussions similaires

  1. Affichage des informations des utilisateurs de l'AD par LDAP
    Par lindblum dans le forum Administration système
    Réponses: 1
    Dernier message: 11/06/2010, 15h25
  2. affichage des informations du table
    Par pasco dans le forum IHM
    Réponses: 1
    Dernier message: 25/02/2008, 16h56
  3. probleme d'affichage des informations avec quickrep
    Par hamadi_insat dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/09/2006, 19h31
  4. Affichage des informations un mois avant
    Par erikac dans le forum Access
    Réponses: 1
    Dernier message: 08/06/2006, 15h03
  5. [SQL] Ordre d'affichage des lignes d'un état
    Par duboisfa dans le forum Oracle
    Réponses: 20
    Dernier message: 28/02/2006, 23h00

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