Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en 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 04/04/2008, 16h14   #1
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
Par défaut GROUP_CONCAT pour antérieur à 4.1

Je pensais avoir pris le précaution d'avoir les mêmes version en local et en distant ...
Il s'avère maintenant que non

J'ai un gros souci avec GROUP_CONCAT implémenté à partie v4.1 et mon hebergeur est en 4.02
Cette syntaxe me donnait entière saf=tisfaction en local
Code :
1
2
 
GROUP_CONCAT(z.dept_zone ORDER BY z.dept_zone SEPARATOR  ',') AS ListeDep
je ne sais pas comment le faire en v < 4.1
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 16h50   #2
Membre éprouvé
 
Avatar de SphynXz
 
Développeur Web
Inscription : mars 2008
Messages : 439
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 439
Points : 474
Points : 474
tu as des accès root sur ton serveur?

parce que le plugin GROUP_CONCAT existe pour les version antérieur

sinon, je reflechit comment simuler un group_concat, mais c'est pas simple
__________________
I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
Pour détourner un avion, il faut monter dedans - Frédéric beigbeder
SphynXz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 16h59   #3
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
Merci de ta réponse !

aarggggg
non je n'ai pas accès au root du serveur ...

Je demande à mon hebergeur d'installer le pluggin, par contre je ne l'ai pas trouvé sur le net ? tu aurasi un lien ?


j'ai trouvé ça mais pas tout pigé ...
http://case.oncle-tom.net/2007/04/09...teau/#more-550
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 17h09   #4
Membre éprouvé
 
Avatar de SphynXz
 
Développeur Web
Inscription : mars 2008
Messages : 439
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 439
Points : 474
Points : 474
je l'avais gardé sous la main en fonction de ce que tu répondrais

http://www.pecus.it/stuff/udf_groupconcat.cc
Citation:
Instruction pour installer udf_groupconcat.cc


user@host:˜> gcc -Wall -I /path/to/mysql/include -I /usr/local/include -c udf_groupconcat.cc -o udf_groupconcat.o
user@host:˜> ld -shared -o udf_groupconcat.so udf_groupconcat.o
user@host:˜> cp udf_groupconcat.so /usr/lib
user@host:˜> mysql (avec les options -u -p , user et mot de passe quoi )
mysql> CREATE AGGREGATE FUNCTION group_concat RETURNS STRING SONAME 'udf_groupconcat.so';
si j'étais dans ton cas, je simplifierais la requête SQL, puis coté php je regrouperais tout çà , la fonction implode en php fonctionne de la même manière que group_concat
__________________
I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
Pour détourner un avion, il faut monter dedans - Frédéric beigbeder
SphynXz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 17h12   #5
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
oui mais dans mon cas de requete je ne penses pas que ce soit faisable ...
c'est pour peupler un tableau html :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
$sqlString="SELECT c.id_comm as Idcomm,
			c.nom_comm as Nom,
			c.titre_comm as  Titre, 
			c.fonc_comm as Fonction, 
			c.ag_comm as Agence, 
			c.adr_comm as Adresse, 
			c.tc_comm as Sedentaire, 
			c.fixe_comm as Tel, 
			c.mob_comm as Mob, 
			c.fax_comm as Fax, 
			c.mail_comm as Email, 
			c.pass_comm as Password, 
			GROUP_CONCAT (z.dept_zone SEPARATOR ',') as Depts
			FROM contacts c LEFT OUTER JOIN zonage z 
			ON c.id_comm = z.idcomm_zone"
			.(($_SESSION['user_id']!='SK. MARTIN')?" WHERE c.fonc_comm!='MAS'":" ")." GROUP BY c.id_comm";
faudrait une requete imbriquée ???
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 17h19   #6
Membre éprouvé
 
Avatar de SphynXz
 
Développeur Web
Inscription : mars 2008
Messages : 439
Détails du profil
Informations personnelles :
Âge : 26

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : mars 2008
Messages : 439
Points : 474
Points : 474
c'est la requête avec le group_concat qui m'interesse :p

ainsi que le code php qui l'exploite
__________________
I don't know what will be used in the next world war, but the 4th will be fought with stones. - Albert Einstein
Pour détourner un avion, il faut monter dedans - Frédéric beigbeder
SphynXz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2008, 17h30   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
arf le boulet

pour la requete : modifié au dessus ...


pour le code php:
Code :
1
2
3
4
5
6
7
8
9
10
11
 
while($row = mysql_fetch_assoc($sqlResult)) { ?>
<tr onmouseover="this.style.backgroundColor='salmon';" onmouseout="this.style.backgroundColor='transparent';">
	<?php 	echo '<td id="ID_'.$row['Idcomm'].'"><form action="FicheUser.php" method="post"><input name="UserId" value="'.$row['Idcomm'].'" type="hidden" /><input name="ButtonUserId"  type="image" src="AdminPics/Modif.gif" style="cursor:pointer;" /></form></td>';
			echo '<td id="ID_'.$row['Idcomm'].'">'.$row['Nom'].'</td>';
			echo '<td >'.$row['Fonction'].'</td>';
			echo '<td>'.$row['Titre'].'</td>';
			echo '<td>'.$row['Agence'].'</td>';
			echo '<td>'.$row['Adresse'].'</td>';			
			echo '<td>'.$row['Sedentaire'].'</td>';	
			echo '<td>'.$row['Depts'].'</td>';
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/04/2008, 16h59   #8
Membre habitué
 
Inscription : septembre 2002
Messages : 140
Détails du profil
Informations forums :
Inscription : septembre 2002
Messages : 140
Points : 118
Points : 118
Bonjour,
est-ce que la solution ne proviendrait pas qu'il faut rajouter un CAST ?

Code :
1
2
 
GROUP_CONCAT(CAST(z.dept_zone AS CHAR) ORDER BY z.dept_zone SEPARATOR  ',') AS ListeDep
papa6 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 09h31   #9
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
Non c'est que mysql 4.0 ne supporte pas GROUP_CONCAT ...
cela fonctionne parfaitement sur des versions plus récentes ...


Je peux toujours faire une requete dans la boucle while, mais on m'a toujours déconseiller de faire ce genre de chose !
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 10h10   #10
Membre Expert
 
Avatar de pmithrandir
 
Homme Pierre Bonneau
Développeur Web
Inscription : mai 2004
Messages : 873
Détails du profil
Informations personnelles :
Nom : Homme Pierre Bonneau
Âge : 28
Localisation : Roumanie

Informations professionnelles :
Activité : Développeur Web
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2004
Messages : 873
Points : 1 593
Points : 1 593
Envoyer un message via MSN à pmithrandir Envoyer un message via Skype™ à pmithrandir
si je me souvien bien, si tu ne met pas le groupe concat, tu va remplacer 1 lignes avec un champ qui sert de tableau par 10 lignes avec une valeur différente par ligne dans la colonne qui n'est pas dans le groupe concat...

Donc toutes les autres valeurs ne changent pas.

Tu dois donc pouvoir au début du while tester l'id(par exemple)
- si il est le même que celui d'avant , ne rien faire d'autre qu'ajouter la valeur de ta colonne.(en oubliant pas de trier autrement tu pourrais avoir des doublons.)

- si il est différent, ajouter une ligne complète.
pmithrandir est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 10h14   #11
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
ha oui ça évite la requete dans la boucle en effet ... donc en ayant fait un tri sur l'id je peux me reconstituer un array à partir de la requête en testant l'id, puis construire la page à partir de l'array ....
mais du coup tous mes SORT BY

Je vais voir ce que je peux faire avec ça ...

Si quelqu'un a une autre suggestion pour teste l'id directement avec mysql au lieu de faire des pansements en php ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/04/2008, 17h37   #12
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
bon mon hébergeur n'étant pas loin de la audacieux en ce qui concerne l'update ou le patch ...
me voilà sans doute condamné à faire un outerjoin ...
le regourpement se fera en php avec un test sur l'id du commercial pour concaténer les departements ...

du coup pour mes SORT BY il faut que je fasse le SORT BY le champs id_comm puis par le champs voulu ...

pourquoi faire simple quand on vous oblige à faire compliqué
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 17h51   #13
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
Bon n'ayons pas peur du ridicule...
j'ai solutionné le problème avec php
http://www.developpez.net/forums/sho...d.php?t=523600

on m'a cependant parlé de la possibilité de CREATE FUNCTION, conservant le traitement au niveau mysql ...

mais je ne vois pas trop comment faire ...

des idées ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 19h20   #14
Membre chevronné
 
Avatar de Hervé Saladin
 
Développeur Web
Inscription : décembre 2004
Messages : 636
Détails du profil
Informations personnelles :
Âge : 30

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : décembre 2004
Messages : 636
Points : 689
Points : 689
Ben comme CREATE FUNCTION te permet d'ajouter tes propres fonctions utilisateurs à ton serveur, si tu connais le fonctionnement EXACT de GROUP_CONCAT (voir la doc) tu peux toujours créer ta propre implémentation à la main ... mais bon faut être sûr de pas se planter et puis ça sera plus lent à l'execution que si tu pouvais compiler la source et l'ajouter en tant qu'extension.
__________________
Ne cliquez pas sur ce lien
Hervé Saladin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 20h25   #15
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 146
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 146
Points : 45 319
Points : 45 319
Ok merci pour cette info... mais en l'occurence je n'ai pas la main sur le root ...
Alors create function ou gestion en php ?
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog 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 23h33.


 
 
 
 
Partenaires

Hébergement Web