Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/02/2011, 09h54   #1
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
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 :
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
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h02   #2
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Code :
ORDER BY ' . EVENT_DATE .','.EVENT_ID.' DESC';
Tu tri sur 2 colonnes afin de réaliser ce que tu souhaite.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h08   #3
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
tu veux dire EVENT_LOCALISATION et non event_ID, non?
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h17   #4
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
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.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h20   #5
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
merci je vais essayer je te tiens au courant
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h25   #6
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
ca ne marche pas il me groupe pas les évènements par date et ville. Un group by ne ferait pas l'affaire?
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h29   #7
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
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
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h32   #8
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
c bon ca marche nickel!! merci
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h39   #9
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
une derniere question pour trier les villes par ordre alpha et non par ID?

merci
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h46   #10
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
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 : 951
Points : 1 063
Points : 1 063
ORDER BY ...
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h46   #11
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
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.
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h49   #12
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
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
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 10h59   #13
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
C'est au niveau de l'affichage ça que tu doit faire

Code :
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 :
1
2
3
4
SELECT E.*, L.libelle
FROM event E, localisation L
WHERE E.locId = L.id
ORDER BY E.id, E.locId
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h16   #14
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
fail. J'ai une rreur msql

voici ma requete

Code :
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';
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h25   #15
Membre éclairé
 
Homme Jérémy
Étudiant
Inscription : octobre 2009
Messages : 236
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
Localisation : France

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

Informations forums :
Inscription : octobre 2009
Messages : 236
Points : 322
Points : 322
Quelle est l'erreur retournée ?
gwharl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 11h33   #16
Futur Membre du Club
 
Inscription : janvier 2007
Messages : 103
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 103
Points : 16
Points : 16
Bonjour

merci pour ta patience.

Voici ma nouvelle requête :
Code :
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
dedel53 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h45.


 
 
 
 
Partenaires

Hébergement Web