Ne sélectionner que les articles dont le texte dépasse une certaine longueur

Bonjour à tous !

Est-ce que l'un d'entre vous aurait un critère qui premettrait de ne sélectionner que les articles dont le texte (#TEXTE) dépasse une certaine valeur (0 par exemple). J'ai besoin de sélectionner 7 articles parmis les articles qui ont du texte, et comme je sais qu'il est possible d'insérer des critère SQL dans les boucles, je me demande s'il n'y a pas un moyen plus économique de faire ça, plutôt qu'à grands coups de #SET/#GET...

Merci.

--
Olivier G.

Olivier GENDRIN a écrit :

Bonjour à tous !

et comme je sais qu'il est possible d'insérer des critère SQL dans les boucles

Merci.

--
Olivier G.

jamais essayé, mais dans ce cas est-ce que ça peut pas le faire avec {LENGTH(#TEXTE)>=N} ?

BMR

Olivier GENDRIN a écrit :
> Bonjour à tous !
>
> et comme je sais qu'il est possible d'insérer des critère
SQL dans les
> boucles
>
> Merci.
>
> --
> Olivier G.

jamais essayé, mais dans ce cas est-ce que ça peut pas le
faire avec {LENGTH(#TEXTE)>=N} ?

Bien joué ! {LENGTH(texte)>0} fonctionne !

Olivier GENDRIN a écrit :

Olivier GENDRIN a écrit :

Bonjour à tous !

et comme je sais qu'il est possible d'insérer des critère

SQL dans les

boucles

Merci.

--
Olivier G.

jamais essayé, mais dans ce cas est-ce que ça peut pas le faire avec {LENGTH(#TEXTE)>=N} ?

Bien joué ! {LENGTH(texte)>0} fonctionne !

Ah oui, c'est un critère, donc pas de # ni de majuscules...

BMR

Olivier GENDRIN wrote:

Bien joué ! {LENGTH(texte)>0} fonctionne !

Bonsoir,

Est-ce que cela veut dire qu'on peut utiliser n'importe quel PHP cru avec des noms des champ de la base de données comme critère !?

Paolo

Paolo a écrit :

Olivier GENDRIN wrote:

Bien joué ! {LENGTH(texte)>0} fonctionne !

Bonsoir,

Est-ce que cela veut dire qu'on peut utiliser n'importe quel PHP cru avec des noms des champ de la base de données comme critère !?

c'est pas du PHP, c'est du MySQL ...
Mais oui, on peut maintenant faire plein de trucs : des count, length, substr et autres fonctions disponibles.

http://dev.mysql.com/doc/refman/5.0/fr/functions.html

La limite, c'est qu'il faut trouver le nom à passer... car c'est l'alias de la table dans la requete, quand il y a des jointures, c'est pas toujours evident.
Mais bon, en general, c'est le nom de la table sans "spip_"

@++

spipcarto wrote:

c'est pas du PHP, c'est du MySQL ...

Oui. Je m'en suis rendu compte après.
J'ai trouvé que des choses comme
<BOUCLE_test(ARTICLES){length(soustitre) >0 AND length(soustitre) >0}>

marchent sans problèmes.

Mais est-ce "officiel" ? Ça veut dire, ça ne risque pas de disparaître avec des versions à venir ?

> Mais oui, on peut maintenant faire plein de trucs : des count, length,
> substr et autres fonctions disponibles.

Comment est-ce qu'on utiliserait substring et count dans un critère ?

Paolo

J'çrivais (sans faire attention):

{length(soustitre) >0 AND length(soustitre) >0}

{length(soustitre) >0 AND length(surtitre) >0}

P.

Paolo a écrit :

spipcarto wrote:

> Mais oui, on peut maintenant faire plein de trucs : des count, length,
> substr et autres fonctions disponibles.

Comment est-ce qu'on utiliserait substring et count dans un critère ?

pour le count, je vais pas dire de betises, je sais que j'ai vu passer des trucs sur la liste dev avec les jointures, mais c'est un peu chaud, car il faut un group by pour les autres champs, donc ca doit etre possible que si tu limite l'affichage à ce que tu comptes.

Pour le SUBSTRING, je ne sais pas, si tu cherches les articles dont les 3 premieres lettres du titres sont identiques à celles de l'article en cours, ce qui donnerait sans doute :
<BOUCLE_test(ARTICLES){SUBSTRING(titre,1,3)=(#TITRE|substr{0,3})}>

tu as aussi UPPER / LOWER / LTRIM /REPLACE (?)... qui peuvent servir... mais sans doute pas tous les jours.
:wink:

@++

> Bien joué ! {LENGTH(texte)>0} fonctionne !

Ah oui, c'est un critère, donc pas de # ni de majuscules...

C'est même le nom d'un champ de la table spip_articles en fait.

Mais oui, on peut maintenant faire plein de trucs : des
count, length, substr et autres fonctions disponibles.

En fait, c'est très vieux comme 'truc', je crois que c'était déjà possible
en 1.7. Du SQL en critère et du PHP en filtre.