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 :

Problème affichage avec tri [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut Problème affichage avec tri
    Bonjour

    Je me permets de vous ecrire ce post car j'ai un petit soucis dans ma requête sql. Je souhaite afficher des évènements par date (du plus récent au plus ancien) et de les regrouper par ville

    par exemple

    Evenement 1 à Angers
    Evenement 2 à Angers
    Evenement 3 à Nantes
    Evenement 4 à Paris

    pour le moment je tri que sur la date
    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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    public function eventSelectAll () {
    		/* Récupération des party autorisées. ----------------------------------------------------------*/
    		$tmpParty=$this->eventSelectAuthorized ();
    		$this->requete='SELECT * FROM ' . TABLE_EVENT . ' WHERE \'1\'';
    		$this->requete.=' AND ' . EVENT_ID . ' IN (';
    		for ($cc=0; $cc<count ($tmpParty); $cc++)
    			$this->requete.=$tmpParty[$cc] . ', ';
    		$this->requete=substr ($this->requete, 0, -2) . ') ORDER BY ' . EVENT_DATE . ' DESC';
    		unset ($tmpParty);
    		mysqlUK::execRequete ();
    		while ($liste=mysql_fetch_array ($this->resultats)) {
    			$this->partyEvent[]=array (
    				EVENT_ID			=> $liste[EVENT_ID],
    				EVENT_DATE			=> $liste[EVENT_DATE],
    				EVENT_DATESTART		=> $liste[EVENT_DATESTART],
    				EVENT_DATESTOP		=> $liste[EVENT_DATESTOP],
    				EVENT_NOM			=> stripslashes ($liste[EVENT_NOM]),
    				EVENT_NBMEMBRES		=> $liste[EVENT_NBMEMBRES],
    				EVENT_STATUT		=> $liste[EVENT_STATUT],
    				EVENT_ORGANISATEUR	=> $liste[EVENT_ORGANISATEUR],
    				EVENT_LOCALISATION	=> $liste[EVENT_LOCALISATION]
    			);
    		}
    		for ($cc=0; $cc<count ($this->partyEvent); $cc++) {
    			if ($this->partyEvent[$cc][EVENT_ORGANISATEUR]) {
    				$this->organisateurSelectOne ($this->partyEvent[$cc][EVENT_ORGANISATEUR]);
    				$this->partyEvent[$cc][EVENT_ORGANISATEUR]=$this->organisateur;
    				unset ($this->organisateur);
    			} else {
    				$this->partyEvent[$cc][EVENT_ORGANISATEUR]=array (
    					MEMBRE_PRENOM	=> '&nbsp;',
    					MEMBRE_NOM		=> '&nbsp;'
    				);
    			}
    			if ($this->partyEvent[$cc][EVENT_LOCALISATION]) {
    				$this->localisationSelectOne ($this->partyEvent[$cc][EVENT_LOCALISATION]);
    				$this->partyEvent[$cc][EVENT_LOCALISATION]=$this->localisation;
    				unset ($this->localisation);
    			} else {
    				$this->partyEvent[$cc][EVENT_LOCALISATION]=array (
    					EVENTLOCALISATION_TITRE => '&nbsp;'
    				);
    			}
    		}
    	}
    Je vous remercie de votre aide

  2. #2
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ORDER BY ' . EVENT_DATE .','.EVENT_ID.' DESC';
    Tu tri sur 2 colonnes afin de réaliser ce que tu souhaite.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    tu veux dire EVENT_LOCALISATION et non event_ID, non?

  4. #4
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Oui après c'est à ta guise de toute façon selon ce que tu veux afficher, le truc à retenir c'est que tu peux trier sur plusieurs éléments dans ce cas-ci effectivement tu doit le faire date et localisation.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    merci je vais essayer je te tiens au courant

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    ca ne marche pas il me groupe pas les évènements par date et ville. Un group by ne ferait pas l'affaire?

  7. #7
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Normalement ça devrait être le cas, quel est l'ordre retourné dans ce cas ?

    Le group by va te regrouper tes entrées du coup si tu en fait un par exemple sur localisation tu n'aura plus qu'une fois la loc.

    Est tu sur de vouloir ordonner par date et ville car dans ton exemple cela semble plus etre par id et localisation.

    Evenement 1 à Angers
    Evenement 2 à Angers
    Evenement 3 à Nantes
    Evenement 4 à Paris

  8. #8
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    c bon ca marche nickel!! merci

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    une derniere question pour trier les villes par ordre alpha et non par ID?

    merci

  10. #10
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    ORDER BY ...

  11. #11
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Par ordre alpha ? Si tu entend par là, par nom de la ville (anger avant blois etc...), c'est surement par rapport à ton champs "EVENT_LOCALISATION" je suppose.

  12. #12
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    oui en gros j'ai une table qui comprend l'id_localisation rattaché à une ville + une table event où j'ai juste l'id localisation en clé étrangère

  13. #13
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    C'est au niveau de l'affichage ça que tu doit faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT matablelocalisation.libelle_localisation
    Fait ton order by fait le sur l'ID de la localisation tu y gagnera en performance et réactivité.

    Ta requête sera du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT E.*, L.libelle
    FROM event E, localisation L
    WHERE E.locId = L.id
    ORDER BY E.id, E.locId

  14. #14
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    fail. J'ai une rreur msql

    voici ma requete

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	$tmpParty=$this->eventSelectAuthorized ();
    		$this->requete='SELECT TABLE_EVENT.*, TABLE_EVENTLOCALISATION.EVENTLOCALISATION_TITRE FROM ' . TABLE_EVENT . ',' .TABLE_EVENTLOCALISATION. ' WHERE' . EVENT_LOCALISATION . '=' . EVENTLOCALISATION_ID.;
    		$this->requete.=' AND ' . EVENT_ID . ' IN (';
    		for ($cc=0; $cc<count ($tmpParty); $cc++)
    			$this->requete.=$tmpParty[$cc] . ', ';
    		$this->requete='ORDER BY ' .EVENT_LOCALISATION.','.EVENT_DATE.' DESC';

  15. #15
    Membre chevronné
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2009
    Messages : 236
    Par défaut
    Quelle est l'erreur retournée ?

  16. #16
    Membre confirmé
    Inscrit en
    Janvier 2007
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 104
    Par défaut
    Bonjour

    merci pour ta patience.

    Voici ma nouvelle requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $tmpParty=$this->eventSelectAuthorized ();
    		$this->requete='SELECT ' . TABLE_EVENT . '.*,';
    		$this->requete.=' ' . TABLE_EVENTLOCALISATION . '.' . EVENTLOCALISATION_TITRE ;
    		$this->requete.=' FROM ' . TABLE_EVENT . ', ' . TABLE_EVENTLOCALISATION ;
    		$this->requete.=' WHERE ' . TABLE_EVENT . '.' . EVENT_LOCALISATION . '=' . TABLE_EVENTLOCALISATION . '.' . EVENTLOCALISATION_ID;
    		$this->requete='ORDER BY ' . TABLE_EVENT . '.' . EVENT_LOCALISATION . ','. TABLE_EVENT . '.' . EVENT_DATE.' DESC';
    Il me retourne

    # - Application: MySql.
    # - Type: Requêe.
    # - Erreur: Une requête est tombée en erreur.

    <?php
    ORDER BY pasta_evenement.event_localisation,pasta_evenement.event_date DESC
    ?>

    merci pour ton aide

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

Discussions similaires

  1. Problème affichage avec tri
    Par dedel53 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 19/02/2011, 09h16
  2. Problème affichage avec MessageBox
    Par farfadet dans le forum C++
    Réponses: 5
    Dernier message: 02/07/2007, 13h10
  3. Problème affichage avec ATI Mobility FireGL v3200
    Par MoDDiB dans le forum NxEngine
    Réponses: 2
    Dernier message: 25/06/2007, 09h33
  4. Problème affichage avec MSN
    Par CLion dans le forum Messagerie instantanée
    Réponses: 4
    Dernier message: 11/12/2006, 16h45
  5. [PHP-JS] Problème affichage avec structure if
    Par kitty2006 dans le forum Langage
    Réponses: 31
    Dernier message: 07/09/2006, 18h01

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