Re: [Agenda vs Compositions] Erreur SQL 1052 en SPIP 3.3

Matthieu Marcillaud <[email protected]>
Newsgroups gmane.comp.web.spip.devel
Message-ID <[email protected]>
Le 25/03/2020 à 17:48, Jean Marie Grall a écrit :

>> *Erreur SQL 1052*
>> Champ: 'id_article' dans where clause est ambigu
>> *SELECT articles.id_article, 0 as points, '', articles.titre, 
>> articles.lang, articles.statut, articles.id_rubrique, 
>> articles.surtitre, articles.titre AS titre_rang, articles.soustitre, 
>> articles.date FROM spip_articles AS `articles` INNER JOIN 
>> spip_evenements AS L4 ON ( L4.id_article = articles.id_article ) WHERE 
>> (articles.id_rubrique = 3) AND (L4.id_evenement = 1) AND 
>> id_article!=17 AND (articles.statut IN ('publie')) GROUP BY 
>> articles.id_article ORDER BY articles.date DESC, articles.titre*
>>
>> Capture d'écran : https://pic.infini.fr/gallery#PEImzDWT/HIzuWQcR.png
>>
>> L'erreur apparait sur l'url 
>> */?exec=article&id_article=17&id_evenement=1/* mais pas 
>> */?exec=article&id_article=17/* et si je passe par le menu Édition > 
>> Événement > Créer un événement, je n'ai pas cette erreur car je suis 
>> l'url */?exec=evenement&id_evenement=5/*.

Ok.

Alors, pas besoin de compositions.

Le problème semble venir de prive/liste/articles.html, utilisé sur le 
bloc "Dans la même rubrique". Il liste les articles avec le critère 
{id_?} et {where?} ; id_ développe plusieurs identifiants, dont 
{id_evenement?} et le {where?} contient 'id_article!=1'.

Le where n’indiquant pas l’alias de table (article.id_article!=1), cela 
crée pour mysql un champ ambigu.

La solution simple semble être de modifier 
prive/squelettes/extra/article.html la ligne :

- #SET{where,#VAL{id_article!=}|concat{#ID_ARTICLE}}
+ #SET{where,#VAL{articles.id_article!=}|concat{#ID_ARTICLE}}


Cela dit, le cadre des articles "dans la même rubrique", qui filtre la 
liste d’articles sur d’autres ids que id_rubrique, je sais pas si c’est 
une bonne idée en soit.

Et effectivement avant l’introduction du critère `{id_?}` on ne voyait 
pas entrer `{id_evenement?}` dans cette liste d’articles, donc le bug ne 
se produit qu’à partir de SPIP 3.3.

MM.

_______________________________________________
liste: https://listes.rezo.net/mailman/listinfo/spip-dev
doc: https://www.spip.net/
dev: https://core.spip.net/
irc://irc.freenode.net/spip
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.