6
Indiquez l’intérêt que vous portez à cette question
0

Comment traduire cette boucle Spip en requete sql ?

Bonjour à toutes et tous,

Je viens vers vous car je bloque sur l’écriture d’une requête sql !
Depuis plusieurs années, je travaille avec des boucles Spip, j’y ai pris goût.
Je souhaite obtenir aujourd’hui le résultat d’une de mes boucles Spip au format Xml mais pour ce faire il me faut écrire une requête sql sur phpmyadmin pour obtenir un résultat que j’enregistrerai en xml
Pour une requête simple, pas de souci.

<BOUCLE_simple(ARTICLES){id_secteur=33}
                                     {id_rubrique>30}
                                     {par id_article, titre}{0,50}>
          #ID_ARTICLE, #TITRE , #ID_RUBRIQUE <br />
</BOUCLE_simple>

Comme la documentation Spip l’indique, cela se convertit en :

SELECT ’id_article’, ’titre’, ’id_rubrique’,’date_redac’ FROM ’ARTICLES’ WHERE ’id_secteur’ = 33 AND ’id_rubrique’ > 30 ORDER BY ’id_article’,’titre’ LIMIT 50

Mais pour ma boucle (MOTS), n’ayant pas appris à rédiger des requêtes sql, je câle ! La boucle Spip est pour moi trop complexe à traduire !
Voici ma boucle :

<!--  On boucle les articles/notices jusqu'à 1600 --->
<BOUCLE0(ARTICLES){id_rubrique=28}{titre == ^14|^15|^1600} {doublons A}></BOUCLE0>
 
<!--  On crée un tableau --->
#SET{articles,#ARRAY}
#SET{datesliéesauxarticles,#ARRAY}
#SET{titresarticles,#ARRAY}
 
<!--  On récupère les articles/notices qui figurent dans la boucle doublons A --->
<BOUCLE_articlesbase(ARTICLES){id_rubrique=28} {!doublons A}>				
#SET{articles,#GET{articles}|push{#ID_ARTICLE}}
#SET{titresarticles,#GET{articles}|push{#ID_ARTICLE}}
<BOUCLE_articlesepingles(MOTS){id_groupe=7}{id_article}>
#SET{datesliéesauxarticles,#GET{datesliéesauxarticles}|push{#ID_MOT}}					
</BOUCLE_articlesepingles>
</BOUCLE_articlesbase>
 
<B_mots_freres_annee>
<div>									
<ul>	
<BOUCLE_mots_freres_annee(MOTS) {id_groupe=7} {id_mot IN #GET{datesliéesauxarticles}} {par titre}>
	<li>
	<!--  On affiche la date  (mot-clé) liée aux articles --->
	<h5>#TITRE</h5>
		</br>
		<!-- la boucle articles --->
		<!--  On récupère les articles/notices qui figurent dans la boucle doublons A --->
		<BOUCLE_articles(ARTICLES) {id_mot} {par titre} {!doublons A}>
		<!--  On affiche le titre de l'article --->
		[(#TITRE)]
		[<p><transcription>(#TRANSCRIPTION_A_AFFICHER|propre|PtoBR)</transcription></p>]
 
 
		[(#REM) localisations, présentation alphabétique]
		<B_localisations0>
			<p>[(#GRAND_TOTAL)[(#GRAND_TOTAL|>={2}|? {' localisations', ' localisation'})] :]
				<BOUCLE_localisations0(MOTS) {par titre} {id_groupe_racine=10} {id_article}>
				<!--  On affiche le titre (mot-clé) de la localisation --->
					[(#TITRE)]
				</BOUCLE_localisations0>
			</p>
		</B_localisations0>
		<//B_localisations0>							
		[<p>Notice n°<a href="#URL_ARTICLE">(#ID_ARTICLE)</a>.</p>]							
		</BOUCLE_articles>
	</li>
</BOUCLE_mots_freres_annee>
</ul>
</div>
</B_mots_freres_annee>

Voilà
Si d’aventure, vous pouviez m’aider, je vous en remercie par avance,
Cordialement,
Eric