[Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Forum consacré aux codes conseillés ou mis à disposition sur phpBB SEO dans le forum Toolkit phpBB SEO. Support, téléchargements, conseils ...

Modérateur: Modérateurs

[Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede stevenson » Mer Mar 30, 2011 1:23 pm

Bonjour,

J'ai la premod de phpbb seo (3.0.7-PL1 maj en 3.0.8 ) et quand j'active Related post, je me retrouve avec une erreur sur tous mes posts :
Erreur générale
SQL ERROR [ postgres ]

ERREUR: syntaxe en entrée invalide pour le type booléen : « %del% » LINE 1: ... t.forum_id AND t.topic_title LIKE '%playa%' OR '%del%' OR... ^ []

SQL

SELECT t.*, f.forum_name, f.enable_icons FROM phpbb_topics t, phpbb_forums f WHERE t.forum_id IN (8, 9, 10, 12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 143, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 374, 634, 635) AND f.forum_id = t.forum_id AND t.topic_title LIKE '%playa%' OR '%del%' OR '%carmen%' AND t.topic_status <> 2 AND t.topic_id <> 230 ORDER BY t.topic_id DESC LIMIT 7 OFFSET 0

BACKTRACE

FILE: includes/db/postgres.php
LINE: 188
CALL: dbal->sql_error()

FILE: includes/db/postgres.php
LINE: 243
CALL: dbal_postgres->sql_query()

FILE: includes/db/dbal.php
LINE: 170
CALL: dbal_postgres->_sql_query_limit()

FILE: phpbb_seo/phpbb_seo_related.php
LINE: 60
CALL: dbal->sql_query_limit()

FILE: viewtopic.php
LINE: 1879
CALL: seo_related->get()


Une idée d'où ça peut venir ?

Merci !
stevenson
 
Messages: 4
Inscription: Mer Mar 30, 2011 1:18 pm

Publicité

Re: [Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede dcz » Mer Mar 30, 2011 1:53 pm

Ah, un utilisateur postgres, enfin ! ( :mrgreen: )

Donc, il semble bien que ce soit un bug postgres (le LIKE passe sur mysql), mais pour commencer, quand tu vois la tronche de la requête, tu comprends tout de suite à quel point l'option "Recherche sur tous les forums" devrait être utilisée avec parcimonie.

Donc, le bug semble venir de la façon de gérer le OR dans le LIKE (et malheureusement, je ne suis pas très assidu en postrges).

Avec Mysql :
Code: Tout sélectionner
LIKE '%expr1%' OR '%expr2%'  ... OR '%exprn%'

est équivalent à :
Code: Tout sélectionner
LIKE ('%expr1%' OR '%expr2%'  ... OR '%exprn%')


A voir si l'ajout de parenthèse suffirait à postrges pour mieux s'y retrouver.

Pour essayer, dans phpbb_seo/phpbb_seo_related.php, remplaces :
Code: Tout sélectionner
            $sql_like .= empty($sql_like) ? " LIKE '%$word%'" : " OR  '%$word%'";

Par:
Code: Tout sélectionner
            $sql_like .= empty($sql_like) ? "'%$word%'" : " OR '%$word%'";

et :
Code: Tout sélectionner
               return $sql_like;

Par :
Code: Tout sélectionner
               return " LIKE ($sql_like)";

et :
Code: Tout sélectionner
      return $sql_like;

Par :
Code: Tout sélectionner
      return $sql_like ? " LIKE ($sql_like)" : '';


Si ça ne suffit pas, je crains qu'il ne faille alors spécifier le champs de comparaison à chaque fois :
Code: Tout sélectionner
t.topic_title LIKE '%expr1%' OR t.topic_title LIKE '%expr2%'  ... OR t.topic_title LIKE '%exprn%'


Mais restons optimistes, essayes la modifs, et dis moi si ça suffit, si non, je te ferais d'autres propositions, voir, je me résoudrais à installer postrges :roll:
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Re: [Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede stevenson » Mer Mar 30, 2011 5:19 pm

Salut,

Hé oui postgres !

J'ai fait ce que tu me conseilles (j'ai aussi enlevé la recherche sur tous les forums), mais malheureusement j'ai toujours :

Erreur générale
SQL ERROR [ postgres ]

ERREUR: syntaxe en entrée invalide pour le type booléen : « %playa% » LINE 1: ... f.forum_id = t.forum_id AND t.topic_title LIKE ('%playa%' ... ^ []

SQL

SELECT t.*, f.forum_name, f.enable_icons FROM phpbb_topics t, phpbb_forums f WHERE t.forum_id = 318 AND f.forum_id = t.forum_id AND t.topic_title LIKE ('%playa%' OR '%del%' OR '%carmen%') AND t.topic_status <> 2 AND t.topic_id <> 230 ORDER BY t.topic_id DESC LIMIT 7 OFFSET 0

BACKTRACE

FILE: includes/db/postgres.php
LINE: 188
CALL: dbal->sql_error()

FILE: includes/db/postgres.php
LINE: 243
CALL: dbal_postgres->sql_query()

FILE: includes/db/dbal.php
LINE: 170
CALL: dbal_postgres->_sql_query_limit()

FILE: phpbb_seo/phpbb_seo_related.php
LINE: 60
CALL: dbal->sql_query_limit()

FILE: viewtopic.php
LINE: 1879
CALL: seo_related->get()


Ça sent pas bon ?
stevenson
 
Messages: 4
Inscription: Mer Mar 30, 2011 1:18 pm

Re: [Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede dcz » Jeu Mar 31, 2011 8:18 am

Bon je me suis résolu à installer postgres et voici donc la solution (insensible à la casse) : http://phpbb-seo.coda-cola.net/projects ... isions/300

Tu peux télécharger le fichier en utilisant ce lien direct "http://phpbb-seo.coda-cola.net/projects/phpbb_seo_premod/repository/revisions/300/raw/trunk/premod/root/phpbb_seo/phpbb_seo_related.php" et remplacer le tiens avec.

;)
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Re: [Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede stevenson » Jeu Mar 31, 2011 11:35 am

Salut,

Merci pour ton aide.
J'ai écrasé le fichier, il n'y a effectivement plus d'erreur mais je n'ai pas d'articles en relation dans mes sujets alors que j'en ai pourtant écrit des "similaires". C'est normal?
stevenson
 
Messages: 4
Inscription: Mer Mar 30, 2011 1:18 pm

Re: [Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede dcz » Jeu Mar 31, 2011 11:55 am

Non, ce n'est pas normal (ce coup-ci, j'ai testé).

Soit tu n'as pas activé le mod dans l'acp, soit tu as un défaut de modification dans ton viewtopic_body.html.

A priori, je penche pour le template car l'erreur que tu as eu confirme que la requête est bien envoyée, mais tu peux à tout hasard Activer le débug sur phpBB et ainsi utiliser le lien "explain" qui s'affiche dans le footer pour vérifier que la requête est bien faite (et aussi avoir un explain complet et un benchmark).

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Re: [Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede stevenson » Mar Avr 05, 2011 8:22 pm

Salut,

Effectivement, c'est un problème de template, j'ai testé avec prosilver et subsilver2 et j'ai bien le bloc d'articles en relation qui s'affiche et qui marche.
J'utilise Milky Way de http://www.icyphoenix.com/ . Une idée d'où ça peut venir ?

Merci ;)
stevenson
 
Messages: 4
Inscription: Mer Mar 30, 2011 1:18 pm

Re: [Related] SQL ERROR [ postgres ] ERREUR: syntaxe

Messagede dcz » Mer Avr 06, 2011 6:25 am

Et bien, comme tous les mods qui modifient les temlates, il faut adapter quand on utilise pas un de ceux dont les modifs sont fournies. Le style du liens que tu as posté utilise des tables, donc, à priori, il faudrait partir des modifs de subsilver2 et adapter.
Le code est assez similaire à celui de viewforum_body.html (la partie qui affiche la liste des sujets), donc, tu dois pouvoir adapter à partir du code de ton style sans trop de soucis (avec bien entendu un minimum de connaissances en html).

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm


Retourner vers MODS phpBB SEO

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités