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 :

probleme affichage avec requete sql


Sujet :

PHP & Base de données

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut probleme affichage avec requete sql
    bonjour,



    voila j'aimerai afficher un tableau de ce type :

    titre1

    ex1

    ex2

    ex3

    titre2

    ex1

    ex2



    mais mois j'obtient avec ma requete :

    titre1

    ex1

    titre2

    ex1

    titre2

    ex1



    voila la requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT contenu_id, contenu_titre,contenu_date, contenu_prix,ref_gite 
    		FROM contenu_tarifs WHERE ref_gite="'.$ref_gite.'" GROUP BY contenu_titre

    et voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    foreach($managerContenuTarifs->getListByGiteAndTitle(104801) as $ItemTarifs)
    		{	
     
    <tr><td>$ItemTarifs->getContenuTitre()</td></tr>
     
     
    <tr><td>$ItemTarifs->getContenuDate()</td>
    <td>$ItemTarifs->getContenuPrix()</td>
    </tr>
     
    }


    merci.

  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
    Je réponds toutes les semaines à cette question.
    La méthode la plus rapide est de classer les résultats et de condition l'affichage du titre au fait qu'il soit différent du précédent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT contenu_id, contenu_titre,contenu_date, contenu_prix,ref_gite 
    		FROM contenu_tarifs WHERE ref_gite="'.$ref_gite.'" GROUP BY contenu_titre
                    ORDER BY contenu_titre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $current_titre = '';
    foreach($managerContenuTarifs->getListByGiteAndTitle(104801) as $ItemTarifs)
    		{	
                     $titre = $ItemTarifs->getContenuTitre();
                     if ($titre != $current_titre) {
                          echo '<tr><td colspan="2">' . $ItemTarifs->getContenuTitre() . '</td></tr>';
                          $current_titre = $titre;
                     }

  3. #3
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    bonjour,

    mais je n'ai pas les date à l'intérieur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $current_titre = '';
    foreach($managerContenuTarifs->getListByGiteAndTitle(104801) as $ItemTarifs)
    		{	
                     $titre = $ItemTarifs->getContenuTitre();
                     if ($titre != $current_titre) {
                          echo '<tr><td colspan="2">' . $ItemTarifs->getContenuTitre() . '</td></tr>';
                          echo '<tr><td colspan="2">' . $ItemTarifs->getContenuDate() . '</td></tr>';
                          $current_titre = $titre;
                     }
    en titre c 'est haute saison / Basse saison / Moyenne saison

    et dedans les dates .

    mais je n'obtient toujours qu'une date.

    merci.

  4. #4
    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
    Dans le if{} il n'y a que la partie non-repetée, donc le titre.
    Le reste va à l'exterieur du if{}

  5. #5
    Membre habitué
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Points : 149
    Points
    149
    Par défaut
    voici mon nouveau code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     $current_titre = '';
    foreach($managerContenuTarifs->getListByGiteAndTitle(104801) as $ItemTarifs)
    		{	
                     $titre = $ItemTarifs->getContenuTitre();
                     if ($titre != $current_titre) {
                          $body.='<tr><td colspan="2">' . $ItemTarifs->getContenuTitre() . '</td></tr>';
     
                          $current_titre = $titre;
                     }
     
    		$body.='<tr><td colspan="2">' . $ItemTarifs->getContenuDate() . '</td></tr>';
    		}
    et mon resultat :
    Basse saison
    du 08/11/2014 au 19/12/2014
    Haute saison (été)
    du 04/07/2015 au 21/08/2015
    Moyenne saison
    du 20/12/2014 au 02/01/2015

    une date a chaque fois alors qu'il y en beaucoup plus dans chaque.

    la fonction:
    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
    	public function getListByGiteAndTitle($ref_gite)
    	{
     
    		$listeaccueil = array();
     
    		$sql = 'SELECT contenu_id, contenu_titre,contenu_date, contenu_prix,ref_gite 
    		FROM contenu_tarifs WHERE ref_gite="'.$ref_gite.'" GROUP BY contenu_titre
                    ORDER BY contenu_titre';
     
    		$requete = $this->db->query($sql);
     
    		while ($accueil = $requete->fetch(PDO::FETCH_ASSOC))
    		$listeaccueil[] = new ContenuTarifs ($accueil);
     
    		$requete->closeCursor();
     
     
    		return $listeaccueil;
     
    	}
    merci.

  6. #6
    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
    Il faut retirer
    GROUP BY signifie que tu rassembles tous les résultats en une seule ligne.

Discussions similaires

  1. Probleme affichage avec datagrid & sql server 2005
    Par abelmasengu dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/03/2009, 11h48
  2. [MySQL] Probleme boucle avec requete SQL
    Par sandrine dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/07/2008, 20h50
  3. Pb d'affichage avec requete SQL!
    Par papy75 dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 24/03/2008, 03h49
  4. [C# 2.0] Probleme avec requete SQL
    Par Sion_Sempai dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/09/2006, 23h45
  5. probleme avec requete sql aime pas les strings
    Par lil_jam63 dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/02/2004, 14h45

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