SPIP - Lister toutes les tables et leurs entrées - commentaires SPIP - Lister toutes les tables et leurs entrées 2014-10-09T12:12:07Z https://www.teddypayet.com/SPIP-Lister-toutes-les-tables-et-leurs-entrees#comment289 2014-10-09T12:12:07Z <p>Hello,</p> <p>c'est avec plaisir que je le lirai :)</p> SPIP - Lister toutes les tables et leurs entrées 2014-10-09T07:13:31Z https://www.teddypayet.com/SPIP-Lister-toutes-les-tables-et-leurs-entrees#comment288 2014-10-09T07:13:31Z <p>Salut Vincent !</p> <p>Oui ta requête est bien longue ! En boucle, ça aurait faisable mais complexe à mettre en place. Mais parfois, une bonne requête SQL et tout le monde va bien !</p> <p>Je vais voir pour un autre article d'exemple d'utilisation de la boucle DATA. Cette fois-ci avec une source simplexml.</p> SPIP - Lister toutes les tables et leurs entrées 2014-10-08T18:49:10Z https://www.teddypayet.com/SPIP-Lister-toutes-les-tables-et-leurs-entrees#comment287 2014-10-08T18:49:10Z <p>Histoire de rire ( ou de pleurer ? ) un peu, voici l'assemblage de la requête en question ( gore ) :</p> <div style="text-align: left;" class="spip_code" dir="ltr"><code>[(#SET{req,"SELECT AC.nom as sect,EN.raisonsociale,VS.metiers,VS.description,SE.id_session,SE.datedebut,SE.datefin,SE.maxvisiteurs ,count(*) as 'nb_grps',SUM(GR.nbvisiteurs) as visiteurs, SE.maxvisiteurs - SUM(GR.nbvisiteurs) as 'places_libres',TIMEDIFF(SE.datefin,SE.datedebut) as ecart FROM spip_grps as GR, spip_sessions as SE, spip_vsts as VS, spip_entreprises as EN, spip_sectactivs as AC, spip_pools as PO WHERE GR.id_session=SE.id_session AND EN.id_sectactiv = AC.id_sectactiv AND EN.id_entreprise = VS.id_entreprise AND VS.id_vst = SE.id_vst AND SE.id_pool = PO.id_pool AND SE.datedebut > NOW() AND SE.statut='actif' "})]<br /> [(#ENV{id_pool}|oui) [(#SET{req,[(#GET{req})] AND SE.id_pool = [(#ENV{id_pool})] })] ]<br /> [(#SET{req,[(#GET{req})] GROUP BY (SE.id_session) })]</code></div> <p>En boucles SPIP classiques, je pense que je me serais amusé, et que niveau performances, euh ... ben ... aie ...</p> SPIP - Lister toutes les tables et leurs entrées 2014-10-08T18:48:38Z https://www.teddypayet.com/SPIP-Lister-toutes-les-tables-et-leurs-entrees#comment286 2014-10-08T18:48:38Z <p>Re,</p> <p>effectivement, je suis passé par un #GET/#SET car quand j'ai essayé d'utiliser un #ENV dedans, ça a quelque peu raté. Je l'ai tenté au début au flanc en me disant, bah, ça se tente ... Et oh magie, c'est passé ! Du coup, ça permet d'assembler une requête sur mesure selon l'environnement, de manière un peu plus lisible que si on le faisait en une seule séance. Je suis toujours surpris par la flexibilité de SPIP, c'est bluffant !</p> <p>Sinon, c'est une sacrée bonne nouvelle que l'on ne puisse pas écrire avec ce genre de requêtes, ça pourrait faire des résultats intéressants ...</p> <p>Enfin, je ne suis pas encore tombé sur le cas des parenthèses mais comme j'ai quelques requêtes bien exotiques à passer ( j'y prend goût ), il est probable que je m'y serais cassé le nez sous peu, merci du tuyau du coup !</p> <p>[ coupé car message trop long ]</p> <p>Bref, cet article, la boucle DATA et le plugin la fabrique ont fait de moi un homme sinon comblé, au moins fort heureux ! Merci encore :)</p> SPIP - Lister toutes les tables et leurs entrées 2014-10-08T16:30:43Z https://www.teddypayet.com/SPIP-Lister-toutes-les-tables-et-leurs-entrees#comment285 2014-10-08T16:30:43Z <p>Bonjour,</p> <p>Merci Vincent. :-)<br class="autobr" /> Pour rappel, une boucle DATA, source sql permet uniquement une lecture des tables et en aucun cas une modification/insertion etc. dans la table.</p> <p>De plus, si ta requête est un peu touchy, fait un <code class="spip_code" dir="ltr">#SET{requete,TaRequete}</code> d'abord puis un <code class="spip_code" dir="ltr">#GET{requete}</code> dans ta boucle DATA.</p> <p>Si tu utilises des parenthèses dans ta requête, il faudra les échapper si tu rencontres des erreurs. cf. <a href="http://www.spip.net/fr_article5427.html" class="spip_url spip_out" rel='nofollow external'>http://www.spip.net/fr_article5427.html</a><br class="manualbr" />SPIP t'en remerciera ;-)</p> SPIP - Lister toutes les tables et leurs entrées 2014-10-08T12:05:35Z https://www.teddypayet.com/SPIP-Lister-toutes-les-tables-et-leurs-entrees#comment284 2014-10-08T12:05:35Z <p>Bonjour,</p> <p>merci pour ce petit article qui illustre bien la souplesse de l'écureuil quand on sait quelles noisettes lui donner à manger ! Je cherchais justement des infos sur la boucle DATA pour envoyer une requête SQL alambiquée, me voila éclairé :)<br class="autobr" /> Je confirme : SPIP, c'est bô !</p>