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