Vous n'êtes pas identifié(e).
Bonjour,
J'ai des difficultés à mettre en codage le select que je souhaite.
En effet j'ai trois tables
1) Groupes
-idGoupe
-descGroupe
2) Groupes_has_Fonctionnalites
-idGroupe
-idFonctionnalites
3) Fonctionnalites
-idFonctionnalites
-descFonctionnalites
Je souhaiterais pourvoir afficher dans un tableau
IdGroupe | descGroupe | et toutes les fonctions qui appartiennent a ce groupe
idFonc | descFonc
aussi j'ai commencé à mettre cela en page mais je n'arrive qu'a récupérer soit les groupes soit les fonctionnalités mais pas les fonctionnalités appartenant à chaque groupe
quelqu'un pourrait m'aider please?
Merci d'avance
Hors ligne
Saluton,
J'ai déplacé ton post vers le forum des SGBD.
Essaye comme cela, ça devrait aller mieux.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
bonjour maljuna,
merci pour ton retour qui m'a fais avancé dans la mse en place de ce select.
milles excuces par ailleurs pour avoir posté sur le mauvais forum.
Toutefois j'ai bien adapté ton code mais cela me donne par un var_dump
array
0 => resource(23, mysql result)
1 => resource(23, mysql result)
kesako?
Hors ligne
Ben, sans voir le code PHP à l'origine de ce var_dump, je ne me risquerais pas au moindre diagnostic.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
puis
une idée docteur?
Hors ligne
Tu passes par quoi pour générer ton instance de new DB ?
Comme je n'utilise plus que PDO, je suis un peu largué, là.
Bon je vois bien que ta fonction est, en fait, une méthode d'un objet $util, ça, ça ne me gêne pas, mais c'est l'utilisation de mysql_fetch_assoc sur un resource de $db->query qui m'embrouille.
P----n ! comment que j'me fais vieux !
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
bah par ma classe
pour query
if(!$Result = mysql_query($query)){
try {
throw new MyException(mysql_error());
}
catch (MyException $myException)
{
echo $myException->getError();
}
echo '<br /><b>Impossible d\'exécuter ===></b><br />' . $query . '**' . mysql_error(), mysql_errno();
} else {
return $Result;
}}
je ne suis pas sur que cela répond a ta question toutefois!
ps: tu n'utilise plus PDO tu passes par quoi alors?
Dernière modification par Darkangel (09-12-2011 14:21:12)
Hors ligne
Je n'utilise plus QUE PDO
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
bah pas lu correctement sorry
Dernière modification par Darkangel (09-12-2011 14:34:03)
Hors ligne
bon si je comprend bien il faut que je me mette à PDO plus performant?
plus simple?
Hors ligne
J'ai déjà tout dit à ce sujet, me semble-t-il, et il y a longtemps.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Re salutation Maljuna,
Voici la fonction avec pdo:
mais ca me retourne
Hors ligne
Bonjour,
1.function get_fonc_group(){
2.$db = new DB;
3.$groups_foncs= array();
4.$get_fonc_group = $db->query("SELECT G.idGroupe, descGroupe, F.idFonctionnalites, descFonctionnalites FROM Groupes_Utilisateurs AS G INNER JOIN Groupes_has_Fonctionnalites AS GHF USING(idGroupe) INNER JOIN Fonctionnalites AS F USING(idFonctionnalites) ORDER BY G.idGroupe,F.idFonctionnalites");
5.while($fonc_group = mysql_fetch_assoc($get_fonc_group))
6.{$groups_foncs[] = $get_fonc_group;
7.}
8.return $groups_foncs;
9. $db->cnx_close();
10.}
C'est MK qui a identifié la source de ton problème. Tu exécutes ta requête à partir de ta classe et tu fais un fetch à partir de la bibliothèque mysqli. Cela ne peut fonctionner ainsi.
Soit tu fais le fetch à partir d'une méthode de ta classe soit tu implémentes localement mysqli dans ta fonction.
De plus une autre raison pour laquelle cela ne peut fonctionner, c'est que tes messages de retour indiquent l'utilisation d'un PDOstatement au sein de ta classe, or tu ne peux absoluement pas requêter via PDO et récupérer les données via mysqli, c'est soit tu fais tout en PDO soit tout en mysqli.
Bonne continuation
++
Dernière modification par Jc (11-12-2011 16:56:23)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
je ne suis pas certain de bien cerner votre réponse.
dans mon dernier post j'ai utiliser PDO.
je suis pret à faire tout en PDO désormais mais comment procéder pour récupérer les données en PDO?
Merci d'avance
Hors ligne
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
bon j'ai donc vérifié mon script et l'ai adapté !
cela donne désormais la fonction suivante:
pour l'affichage des données j'ai procédé comme ceci:
echo '<tr><td>'.$fonc_group[$i]["idGroupe"].'</td><td>'.$fonc_group[$i]["descGroupe"].'</td><td>'.$fonc_group[$i]["idFonctionnalites"].'</td><td>'.$fonc_group[$i]["descFonctionnalites"].'</td></tr>';
}
echo '</table>';
et cela me donne:
IdGroupe Desc Groupe Id Fonctionnalite Desc Fonctionnalite
1 Admin 1 Tout voir
1 Admin 2 Tout voir et tout modifier
2 LEAR 1 Tout voir
La question est la suivante: Comment procéder afin que dans le cas ou l'id groupe et desc groupe similaire on puisse fusionner les cellule de sorte à avoir
IdGroupe Desc Groupe Id Fonctionnalite Desc Fonctionnalite
1 Admin 1 Tout voir
2 Tout voir et tout modifier
2 LEAR 1 Tout voir
merci d'avance pour votre aide!
Ps: Il s'agit de fonc bidons pour l'instant
Hors ligne
pas très optimisé tout ça
a++
Hors ligne
ok merci mais faudrait m'en dire un plus en vue de pouvoir l'optimiser !
Hors ligne
et cela me donne:
IdGroupe Desc Groupe Id Fonctionnalite Desc Fonctionnalite
1 Admin 1 Tout voir
1 Admin 2 Tout voir et tout modifier
2 LEAR 1 Tout voirLa question est la suivante: Comment procéder afin que dans le cas ou l'id groupe et desc groupe similaire on puisse fusionner les cellule de sorte à avoir
IdGroupe Desc Groupe Id Fonctionnalite Desc Fonctionnalite
1 Admin 1 Tout voir
2 Tout voir et tout modifier
2 LEAR 1 Tout voir
Sur d'autres forums, on te répondrrait qu'il s'agit là d'une problématique qui ne concerne pas SQL, que c'est de la cosmétique. Ce qui, au demeurant est assez vrai.
Toutefois, puisque MySQL nous propose la fonction de groupage GROUP_CONCAT, pourquoi s'en priver ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
le closecursor 'est jamais appeler :D
a++
Hors ligne
hello!
j'ai donc intégrer group concat.
mais cela ne me retourne qu'un seul resultat a lieu de 2 dans mon exemple
cf post précédent pour résultat souhaité
:array
0 =>
array
'GROUP_CONCAT(DISTINCT G.idGroupe)' => string '1,2' (length=3)
0 => string '1,2' (length=3)
'descGroupe' => string 'Admin' (length=5)
1 => string 'Admin' (length=5)
'idFonctionnalites' => string '2' (length=1)
2 => string '2' (length=1)
'descFonctionnalites' => string 'Tout voir et tout modifier' (length=26)
3 => string 'Tout voir et tout modifier' (length=26)
ps: bien fait ton doc maljuna! (en cours de lecture) merci!
Hors ligne
Tu ne fais pas le GROUP_CONCAT sur les bonnes colonnes
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
ok thanks!!
mais alors derniere chose de mise en page!
IdGroupe Desc Groupe Id Fonctionnalites Desc Fonctionnalites
1 Admin 1,2 Tout voir,Tout voir et tout modifier
2 LEAR 1 Tout voir
comment procéder afin que les id Fonctionnalites et les descFonc aille a la ligne
IdGroupe Desc Groupe Id Fonctionnalites Desc Fonctionnalites
1 Admin 1, Tout voir,
2 Tout voir et tout modifier
2 LEAR 1 Tout voir
merci pour votre aide en tout cas!
ps: je ne comprend pas la remarque de pierrot quant au closecursor 'est jamais appeler
Hors ligne
derniere chose de mise en page!
Alors là, pour le coup c'est de la cosmétique qui sort du champ de MySQL. A toi de traiter les valeurs retournées avec un explode ou un split.
ps: je ne comprend pas la remarque de pierrot quant au closecursor 'est jamais appeler
La ligne 7, dans ton script est située après la ligne 6.
Jusque là, rien d'anormal.
Sauf que, la ligne 7 brise la linéarité du code (return), donc la ligne suivante ne sera jamais exécutée.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
sous entendu qu'un closecursor doit toujours etre situé avant le return?
Dernière modification par Darkangel (12-12-2011 15:59:17)
Hors ligne