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 :

ordre des requetes ?


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut ordre des requetes ?
    Bonjour !

    voila le but de mon code est d'afficher toutes les catégorie de ma boutique
    nom et image ca, ça marche!
    et d'afficher le nb d'article que contient chaque catégories
    et c'est là que ça déconne!!!
    ca ne m'affiche qu'une seule catégorie

    je dois avec un pb d'ordre dans mon code ou autre

    merci beaucoup

    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
    23
    24
    25
    26
    27
    28
    29
    <?php
    	$reponse = $bdd->query("SELECT * 
    					FROM boutique_categorie
    					WHERE etat = 0
    					ORDER BY nom
    					DESC
    					") or die(print_r($bdd->errorInfo())); //requete
    	// On fait une boucle pour lister tout ce que contient la table :
     
    	while ($donnees = $reponse->fetch())//mysql_fetch_array, transforme les données en vrac de la table mysql, en une variable ordonnée en tableau (array)
    	{
    	echo'
    	<div class="categorie-boutique">
    		<h3>'.$donnees['nom'].'</h3>';
     
    		//je compte le nb d'entrée pour chaque catégories
    		$id = $donnees['id_categorie'];
    		$reponse = $bdd->query("SELECT COUNT(*) AS nbre_entrees FROM boutique WHERE idCategorie = $id") or die(print_r($bdd->errorInfo())); //requete
    		$donnees2 = $reponse->fetch();//mysql_fetch_array, transforme les données en vrac de la table mysql, en une variable ordonnée en tableau (array)
    		{
    		echo'<p>'.$donnees2['nbre_entrees'].'</p>';
    		}
    	echo'	
    		<img src="images/uploads-categorie-boutique/'.$donnees['id_categorie'].'.jpg" alt="'.$donnees['nom'].'">
    	</div>
    	';
    	}
    	$reponse->closeCursor(); // deconnexion de la BDD PHP5
    ?>

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonsoir.

    une boucle unique avec jointure est vivement conseillée dans ton cas de figure

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    tu veux dire en une seule requette avec jointure entre mes tables
    plus un count?

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    en effet

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 187
    Par défaut
    je suis en train d'essayer et j'ai du mal avec tous ces concepts mélangés
    avec ma requete j'en suis là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $reponse = $bdd->query("SELECT * 
    FROM boutique
    LEFT JOIN boutique_categorie
    ON boutique.idCategorie = boutique_categorie.id_categorie
    WHERE boutique_categorie.etat = 0
    ORDER BY nom
    DESC
    ") or die(print_r($bdd->errorInfo())); //requete
    mais je ne vois pas comment dans un premier temps lister mes categories puis compter combien d'articles elles contiennent?

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    il faut que tu fasses une sous requête. A vu de nez :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SELECT nom, COUNT(*) AS nbre_entrees FROM (
        SELECT * FROM boutique
        LEFT JOIN boutique_categorie
        ON boutique.idCategorie = boutique_categorie.id_categorie
        WHERE boutique_categorie.etat = 0
    )
    GROUP BY nom
    ORDER BY nom DESC

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

Discussions similaires

  1. Ordre des elements d'une requete recursive
    Par hwoarang dans le forum Développement
    Réponses: 5
    Dernier message: 18/01/2011, 11h47
  2. Changer l'ordre des invites de requetes
    Par kfmystik dans le forum Deski
    Réponses: 2
    Dernier message: 26/03/2009, 11h31
  3. Garder l'ordre des Records dans une requete select distinct
    Par pobrouwers dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 21/02/2007, 22h06
  4. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53
  5. Question : ordre des bits ?
    Par Choupi dans le forum C
    Réponses: 3
    Dernier message: 11/02/2003, 06h22

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