[ar] [ca] [cpf] [de] [en] [es] [fr] [it]

Ce forum d’entraide est recommandé pour les utilisateurs et utilisatrices occasionnels de SPIP (Système de publication pour l’Internet). Avant de poser une question, faites une recherche sur ce site, consultez les liens utiles. Si vous ne trouvez pas de réponse, postez votre message dans la rubrique appropriée, avec un titre explicite.

Sujets : 24048 Sujets résolus :  39 %

35 visiteurs en ce moment


LIKE ne passe pas Résolu

par Teenoo - 5 avril 16:50 - Réponse(s) : 8

Bonjour,

dans une boucle avec critères de recherche j’ai un soucis avec LIKE et id_mot impossible de faire fonctionner le critère alors que je n’ai pas de soucis avec id_rubrique...

  1. <BOUCLE_archives(ARTICLES){branche}{id_rubrique ?LIKE #ENV{type}}{id_mot ?LIKE %#ENV{annees}%}{tri date}{inverse}{pagination 20}>

Rien n’est retourné avec #ENVannees, j’ai un bon filtrage sur les rubriques mais c’est tout... J’ai tout testé, évidemment si je met id_mot==#ENVannees ça marche mais faut tout sélectionné et c’est pas ce que je souhaite. L’utilisateur doit avoir le choix : soit l’un, soit l’autre, soit tout, soit rien.

Merci pour vos lumières... Je suis là-dessus depuis hier aprem (soit 1 jour complet :) )


  • #1 > LIKE ne passe pas ˆ
    par erational - 5 avril 19:16

    pourquoi tu as un " ?" avant ton like ?
    la syntaxe est
    {email LIKE %(#ENV{email})%}
    http://www.spip.net/fr_article3981.html

    ensuite sur id_mot, tu as une jointure, il faudrait peut etre la préciser
    http://programmer.spip.net/Forcer-des-jointures

    tu nous tiens au courant ?


  • < #2 > LIKE ne passe pas ˆ
    par Teenoo - 5 avril 19:59

    Si si je mets le ? mais ça marche pas mieux. Je vais regarder en forcant la jointure. A savoir que si je mets

    1. {id_mot == #ENV{annees}}

    pas de soucis mais ça me bloque dans mon filtrage général.


  • < #3 > LIKE ne passe pas ˆ
    par Teenoo - 5 avril 21:10

    Oups j’ai répondu à côté de la plaque :) Le ? permet de prendre en compte le critère uniquement si pour ce critère une valeur est présente dans l’environnement. Du coup c’est cool car si je renseigne pas le formulaire de filtre, eh bien j’ai tous mes articles qui s’affichent. Ça m’évite de rajouter une boucle si celle-ci ne retourne rien.

    Et ton aide ne veut pas fonctionner ;(


  • < #4 > LIKE ne passe pas ˆ
    par brain_damage - 9 avril 16:08

    Salut,

    je ne comprends pas...

    ça n’a aucun sens d’utiliser LIKE sur ce genre de colonne

    {id_mot?} doit être suffisant.

    {id_rubrique?} doit être suffisant également

    Ces colonnes contiennent uniquement des ENTIERS ! donc toi tu dois passer des entiers (nombres) en paramètre ou des tableaux d’entiers.

    dans l’url ça doit resemble à ça :
    id_mot[]=1&id_mot[]=2&id_rubrique[]=44 ...


  • < #5 > LIKE ne passe pas ˆ
    par Teenoo - 10 avril 11:31

    Hum... Je vous joins le code complet un peu allégé pour y voir plus clair :)

    Mon formulaire qui filtre les résultats par type (id_rubrique) et par année (id_mot)

    1. <form action="#SELF" name="filtre" method="get" class="bouton_action_post ajax">]
    2. [(#SELF|form_hidden)]
    3.  
    4. <h5>Par type</h5>
    5. <BOUCLE_btn(ARTICLES){branche}>
    6. <BOUCLE_btn0(RUBRIQUES){id_rubrique}{doublons}>
    7.  
    8.  
    9. <input type='radio' name='type' id='#ID_RUBRIQUE' value='#ID_RUBRIQUE' [(#ENV{type}|=={[(#ID_RUBRIQUE)]}|?{'checked="checked"',''})]
    10. />
    11. <label for="#ID_RUBRIQUE">#TITRE</label>
    12.  
    13.  
    14. </BOUCLE_btn0>
    15. </BOUCLE_btn>
    16.  
    17.  
    18. <h5>Par année</h5><select name="annees">
    19. [<option value=" " selected="selected">Toutes les années</option>]
    20. <optgroup>
    21.  
    22. <BOUCLE_affichage(MOTS){type=annees}{par titre}{inverse}>
    23. [<option value="#ID_MOT" [(#ENV{annees}|=={[(#ID_MOT)]}|?{'selected="selected"',''})]>(#TITRE)</option>]
    24. </BOUCLE_affichage>
    25.  
    26. </optgroup>
    27. </select>
    28.  
    29. <input type="submit" value="Filtrer">
    30.  
    31. </form>

    Télécharger

    Ma seule et unique boucle qui affiche tout si rien n’est déclaré dans le formulaire sinon affiche soit par année (si c’est le seul sélectionné) ou par type (si c’est le seul sélection) ou par type et année (avec les deux).

    1. <BOUCLE_archives(ARTICLES mots_liens){branche}{id_rubrique ?LIKE %(#ENV{type})%}{id_mot ?LIKE %(#ENV{annees})%}{tri titre}{pagination 20}>

    Le critère LIKE me permet vraiment d’afficher tout s’il n’y pas de valeur. Je recherche les articles contenant une id_rubrique etc... Si je change par le critère IN je n’ai plus l’ensemble des articles.

    1. {id_mot?}
    1. {id_rubrique?}

    Pourraient marcher oui mais comment ma boucle peut connaître la valeur associée ?


  • < #6 > LIKE ne passe pas ˆ
    par Teenoo - 10 avril 14:16

    En fait non

    1. {id_rubrique?}
    2. {id_mot?}

    Télécharger

    ça ne prend pas en compte la valeur... En même temps je passe en ajax d’où le fait que mes env ne soient pas dans la barre d’url.


  • < #7 > LIKE ne passe pas ˆ
    par Teenoo - 10 avril 15:46

    J’ai trouvé la boucle magique :)

    1. <BOUCLE_archives(ARTICLES){branche}{id_rubrique ?LIKE %(#ENV{type})%}{id_mot ?}>

    Avec #ENV{id_mot} plutôt que #ENV{annees}


  • < #8 LIKE ne passe pas ˆ
    par brain_damage - 11 avril 19:04

    Salut,

    Que ça passe dans l’url ou en ajax c’est la même chose : il s’agit d’une requête GET ou POST.

    Les variables #ENV{id_rubrique} #ENV{id_mot} sont implicites pour les critère {id_mot?} {id_rubrique?}

    Je répète, LIKE sur id_rubrique ça n’a pas de sens, ça fonctionne certes mais c’est idiot.

    A la rigueur utiliser  ?IN mais pourquoi ne pas rester simple avec le critère id_rubrique ? et passer la variable nommée correctement. ex : id_rubrique=12

    Je peux paraître pointilleux, mais pour quelqu’un qui va lire votre code, le fait de nommer la variable **annees** la personne à toutes les raisons de penser que c’est un tableau de dates #LISTE{1982,1983,2011} mais d’après ce que vous décrivez ce n’est que des id ! qui correspondent à un objet existant : des rubriques.
    Donc pour nommer la variable d’environnement il faut rester simple id_rubrique !

    Et normalement ça devrait afficher tous les articles sans pb !

    Cordialement,




Répondre à la question

« LIKE ne passe pas »

Mots-clés

Vous pouvez étiqueter cette page de forum avec les mots-clés qui vous semblent les plus appropriés ; ils permettront aux prochains visiteurs du site de mieux se repérer :


Installation, mise à jour

Utilisation de l’espace privé

Administration, gestion, configuration du site

Créer ses squelettes

Qui êtes-vous ?

par pertinence | par date

  • Rubriques

    par mailou
    23 mai 19:17

    Pas de réponse

    Bonjour, je souhaite créer une rubrique qui intégrerai le squelette d’un article "patronyme" est-ce possible et comment faire, merci

  • Taille des tableaux

    par AlexR
    23 mai 15:30

    Résolu - Réponse(s) : 6

    Bonjour bonjour, Stagiaire en détresse cherche du réconfort auprès de personnes mieux qualifiées que lui dans leur domaine ! Voilà, j’utilise SPIP afin de mettre en forme le site Internet de la (...)

  • Personnaliser Spip avec bootstrap.

    par Ajel
    22 mai 18:35

    Réponse(s) : 4

    Merci, J’essaye et je vous tiendrai au courant.

  • Modification modele pour la génération du texte dans certains articles

    par Tania
    21 mai 19:32

    Réponse(s) : 2

    Merci pour ta réponse gilles :) mais mon soucis ne se pose pas au sujet du modèle img ou doc mais du modèle qui génère le texte. Pourquoi ? Car la balise #TEXTE|reduire_image*,100 va insérer dans (...)

  • NULL dans un critère conditionnel ?=

    par Optarion
    19 mai 17:13

    Réponse(s) : 8

    Bon... je crois que ce problème restera sans suite malheureusement. Merci pour votre aide.

  • Intégration de Bootsrap 3 dans Spip 3

    par Amire
    13 mai 18:35

    Réponse(s) : 15

    Bonjour, Nous sommes en mai 2017. Il y a pas mal de chose qui a changé. Est ce qu’il y a un moyen de nous faire un tuto pour les novices comme moi. Dans le dossier bootstrap3 il y a bootstrap et (...)

  • Bootstrap + SPIP VS SPIPr

    par Amire
    13 mai 16:00

    Résolu - Réponse(s) : 5

    Bonjour, Je suis novice, est ce que vous pouvez m’indiquer les étapes à suivre pour personnaliser spip 3.1 en utilisant bootstrap svp ? Il y a beaucoup à lire sur Bootsrap, Less et c’est encore (...)

  • Afficher dans une rubrique les objets ayant le même mot-clef que la rubrique

    par Lucie
    13 mai 07:06

    Résolu - Réponse(s) : 1

    Hello, Après avoir beaucoup gambergé j’ai trouvé la boucle miracle ! Je me suis inspiré d’une noisette expliquée en détail de de façon très claire sur Contrib que voici : (...)

  • Documents-joints audio téléchargeables

    par Maja
    12 mai 14:53

    Résolu - Réponse(s) : 2

    Ca marche, merci beaucoup !

  • Des liens spéciaux dans spip ?

    par erational
    12 mai 10:12

    Résolu - Réponse(s) : 1

    Non, il s’agit simplement de chaines de langue qui permettent à SPIP de gérer toutes les langues Je te conseille de lire : https://programmer.spip.net/-Elements-linguistiques-

  • Messages : 29227
  • 8177 43 %
  • Poser une nouvelle question