[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 : 24004 Sujets résolus :  39 %

29 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

  • Utilisation de Bootstrap pour afficher des articles SPIP

    par Lucie
    01:26

    Réponse(s) : 1

    Re-bonjour, Bon, je parviens à faire figurer les articles sur plusieurs colonnes et rangées en incluant du code bootstrap avec le code suivant : <div class="row"> <div (...)

  • Logo en image de fond

    par rezki
    24 avril 13:23

    Réponse(s) : 2

    Merci beaucoup. Je teste ça.

  • Insertion logo et document espace public

    par Teenoo
    21 avril 10:16

    Pas de réponse

    Bonjour, je suis coincée depuis plusieurs mois avec un problème. J’ai créé un site intranet avec création d’articles, insertion de docs, agenda, forum... depuis l’espace publique. Seulement, les (...)

  • filtre parametre_url et formulaire

    par Didine
    21 avril 07:02

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

    Bonjour, finalement ça fonctionne parfaitement avec le filtre |affdate Merci à tous.

  • Template html5up-strongly-typed à la sauce SPIP

    par b_b
    20 avril 20:12

    Réponse(s) : 2

    Super, et merci d’avance pour le partage de ta contribution sur la zone :)

  • Formulaire et appel de fonction

    par Didine
    20 avril 18:01

    Pas de réponse

    Bonjour, j’ai ajouté un formulaire sur ma page qui me permet de faire un tri dans mes locations. Depuis ce formulaire je dois tester si la date sélectionnée correspond bien un samedi. Comment (...)

  • le critère tout n'a aucun effet sur ma boucle rubrique

    par erational
    18 avril 10:07

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

    bon je passe donc en résolu

  • Comment modifier un menu ?

    par JBBJ
    13 avril 01:33

    Réponse(s) : 13

    Sinon, vous avez une idée comment faire pour ajouter un lien vers le blog directement dans le menu ? J’ai regardé pendant une heure mais je n’ai rien trouvé sur le forum :( Merci (...)

  • LIKE ne passe pas

    par brain_damage
    11 avril 19:04

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

    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 #ENVid_rubrique #ENVid_mot sont implicites pour les critère id_mot? id_rubrique? Je (...)

  • Plugin Galleria bug sur la page sommaire

    par clémentb
    8 avril 12:44

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

    Oui, pardon en effet. Je ne l’ai pas dis parceque j’ai décidé de ne pas utiliser le plugin Galleria sur ma page sommaire mais un autre script de galerie jquery que j’ai adapté à ma sauce.. il s’agit (...)

  • Messages : 29181
  • 8166 43 %
  • Poser une nouvelle question