pb fonction recherche [Réglé]
La fonction recherche génère une erreur
Support Général
forum6691 Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre forum6691
- Inscrit le : 04/10/2009
- Groupes :
Quand j'utilise la fonction recherche avec un simple mot clé ("test" par exemple), j'obtiens une belle page rouge avec un dump d'erreur suivant:
Erreur fatale : invalid while request
(SELECT
139 AS id_search,
a.id AS id_content,
a.title AS title,
( 2 * MATCH(a.title) AGAINST('test') + MATCH(a.contents) AGAINST('test') ) / 3 * 1 AS relevance, CONCAT(CONCAT(CONCAT('../articles/articles.php?id=',a.id),'&cat='),a.idcat) AS link
FROM phpboost_articles a
LEFT JOIN phpboost_articles_cats ac ON ac.id = a.idcat
WHERE
a.visible = 1 AND ((ac.aprob = 1 AND ac.auth LIKE '%s:3:"r-1";i:1;%') OR a.idcat = 0)
AND (MATCH(a.title) AGAINST('test') OR MATCH(a.contents) AGAINST('test'))
ORDER BY relevance DESC LIMIT 0, 10) UNION (SELECT 140 AS `id_search`,
q.id AS `id_content`,
q.word AS `title`,
( MATCH(q.description) AGAINST('test') + MATCH(q.word) AGAINST('test') ) / 2 * 1 AS `relevance`,
CONCAT('../dictionary/dictionary.php?l=',q.word) AS `link`
FROM phpboost_dictionary q
WHERE ( MATCH(q.word) AGAINST('test')
OR MATCH(q.description) AGAINST('test') )) UNION (SELECT 141 AS id_search,
d.id AS id_content,
d.title AS title,
( 3 * MATCH(d.title) AGAINST('test') + 2 * MATCH(d.short_contents) AGAINST('test') + MATCH(d.contents) AGAINST('test') ) / 6 * 1 AS relevance, CONCAT('../download/download.php?id=',d.id) AS link
FROM phpboost_download d
WHERE ( MATCH(d.title) AGAINST('test') OR MATCH(d.short_contents) AGAINST('test') OR MATCH(d.contents) AGAINST('test') ) AND d.idcat IN (1) ORDER BY relevance DESC LIMIT 0, 100) UNION (SELECT 142 AS id_search,
f.id AS id_content,
f.question AS title,
( 2 * MATCH(f.question) AGAINST('test') + MATCH(f.answer) AGAINST('test') ) / 3 * 1 AS relevance, CONCAT(CONCAT(CONCAT(CONCAT(CONCAT('../faq/faq.php?id=',f.idcat),'&question='),f.id),'#q'),f.id) AS link
FROM phpboost_faq f
WHERE ( MATCH(f.question) AGAINST('test') OR MATCH(f.answer) AGAINST('test') ) AND f.idcat IN (1,2) ORDER BY relevance DESC LIMIT 0, 100) UNION (SELECT 143 AS `id_search`,
msg.id AS `id_content`,
t.title AS `title`,
MATCH(t.title) AGAINST('test') * 1 AS `relevance`,
CONCAT(CONCAT(CONCAT(CONCAT('..','/forum/topic.php?id='),t.id),'#m'),msg.id) AS `link`
FROM phpboost_forum_msg msg
JOIN phpboost_forum_topics t ON t.id = msg.idtopic
JOIN phpboost_forum_cats c ON c.level != 0 AND c.aprob = 1 AND c.id = t.idcat
WHERE MATCH(t.title) AGAINST('test')
GROUP BY t.id
ORDER BY relevance DESC LIMIT 0, 50) UNION (SELECT 144 AS id_search,
f.id AS id_content,
f.name AS title,
( 2 * MATCH(f.name) AGAINST('test') + MATCH(f.contents) AGAINST('test') ) / 3 * 1 AS relevance, CONCAT(CONCAT(CONCAT('../media/media.php?id=',f.id),'&cat='),f.idcat) AS link
FROM phpboost_media f
WHERE ( MATCH(f.name) AGAINST('test') OR MATCH(f.contents) AGAINST('test') ) AND f.idcat IN (1,2,3,4,5) ORDER BY relevance DESC LIMIT 0, 100) UNION (SELECT 145 AS id_search,
n.id AS id_content,
n.title AS title,
( 2 * MATCH(n.title) AGAINST('test') + (MATCH(n.contents) AGAINST('test') + MATCH(n.extend_contents) AGAINST('test')) / 2 ) / 3 * 1 AS relevance, CONCAT('../news/news.php?id=',n.id) AS link
FROM phpboost_news n
WHERE ( MATCH(n.title) AGAINST('test') OR MATCH(n.contents) AGAINST('test') OR MATCH(n.extend_contents) AGAINST('test') )
AND visible = 1 AND ('1256408283' > start AND ( end = 0 OR '1256408283' < end ) )
ORDER BY relevance DESC LIMIT 0, 100) UNION (SELECT 147 AS `id_search`,
q.id AS `id_content`,
q.title AS `title`,
1 AS `relevance`,
CONCAT('../smallads/smallads.php?edit=',q.id) AS `link`
FROM phpboost_smallads q
WHERE ( q.title LIKE '%test%')
OR ( q.contents LIKE '%test%')) UNION (SELECT 148 AS `id_search`,
`id` AS `id_content`,
`title` AS `title`,
((MATCH(title) AGAINST('test') )* 1) AS `relevance`,
CONCAT('../wiki/wiki.php?title=',encoded_title) AS `link`
FROM phpboost_wiki_articles
WHERE MATCH(title) AGAINST('test'))
Illegal mix of collations for operation 'UNION'
Ligne 337 : search.class.php
Si je réessaye avec le même mot, une deuxième fois, l'écran de résultats de recherche apparait sans problème, mais avec aucune occurrence trouvée, alors qu'il y a bien ce mot dans le forum par exemple.
Testeur V5
horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
Une recherche sur le forum du message d'erreur Illegal mix of collations for operation 'UNION' (pas toujours facile à lire quand on est pas habitué je vous l'accorde) aurait donné ceci :
- http://www.phpboost.com/forum/topic-7006+bug-du-module-search.php
- http://www.phpboost.com/forum/topic-7835+erreur-illegal-mix-of-collations.php
- http://www.phpboost.com/forum/topic-7837+message-d-erreur-lors-d-une-recherche.php
- http://www.phpboost.com/forum/topic-7720+probleme-avec-recherche.php
Tu devrais trouver ton bonheur dans ces sujets là. Suis bien mes indications, tout y est.
PS : désolé si je parait un peu froid, mais c'est la 5° fois que ce problème est posé, alors je prends les devants pour ne pas avoir à me répéter (je n'ai rien contre toi), donc excuse moi par avance, merci.
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
forum6691 Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre forum6691
- Inscrit le : 04/10/2009
- Groupes :
J'ai cherché dans le forum avec les mots clés erreur recherche, mais j'ai rien trouvé de probant autour de la V3.
Par contre, je n'ai pas lu tout le dump d'erreur vu sa taille et la fin synthétique ne m'a pas du sauté au yeux.
Je vais regarder tes # liens
Je reviendrai si je reste bloqué
Merci.
Testeur V5
horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
forum6691 Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre forum6691
- Inscrit le : 04/10/2009
- Groupes :
J'ai suivi les conseils et modifié à la main toutes les tables et colonnes pour les mettre en latin1_swedish_ci
A part la table/colones FAQ/question et answer
et la tables PAGES/title et contents
que je n'arrive pas à modifier. J'ai à chaque fois en retour de la requête SQL suivante
ALTER TABLE `phpboost_pages` CHANGE `contents` `contents` MEDIUMTEXT CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL DEFAULT NULL
le msg
MySQL a répondu:Documentation
#1283 - Column 'contents' cannot be part of FULLTEXT index
Le pb dans le module recherche reste à partir du moment ou je choisi la table FAQ (évidemment, c'est une deux non modifiée)
J'ai donc replongé dans le forum et trouvé la correction (même pb que patgame ). J'ai executé tes requètes COLLATE et c'est bon
Donc problème réglé

Sujet réglé
Édité par forum6691 Le 30/10/2009 à 00h52
Testeur V5
horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie