Page 1 sur 1
La recherche ne fonctionne pas
Posté : ven. 28 févr. 2014 10:53
par thomasbertoux
Bonjour,
Je suis en version 3.0.6 et le champ recherche en haut à droite de la page ne me retourne aucun résultat, or ma recherche contient un mot qui est présent dans certains titre de ticket.
Etes-vous au courant de cela ?
Merci
Cdt
Re: La recherche ne fonctionne pas
Posté : ven. 28 févr. 2014 17:19
par clement1086
Bonjour,
Effectivement, les éléments qui n'ont pas de ligne dans le thread ne sont pas retrouvés dans la recherche...
A mon avis il faudrait modifier la page searchengine.php comme ça
Code : Tout sélectionner
<?php
################################################################################
# @Name : searchengine.php
# @Desc : search engine in database tickets
# @call : /dashboard.php
# @paramters : keywords
# @Autor : Flox
# @Create : 12/01/2011
# @Update : 03/09/2013
# @Version : 2.9
################################################################################
//initialize Session variables
if(!isset($_SESSION['user_id'])) $_SESSION['user_id'] = '';
//case when keywords contain '
$keywords = str_replace("'","\'",$keywords);
//keywords table space separation
$keyword=explode(" ",$keywords);
//count $keywords
$nbkeyword= sizeof($keyword);
if ($nbkeyword==2)
{
$from = "
FROM tincidents
LEFT JOIN tcategory ON tincidents.category=tcategory.id
LEFT JOIN tsubcat ON tincidents.subcat=tsubcat.id
LEFT JOIN tstates ON tincidents.state=tstates.id
LEFT JOIN tthreads ON tincidents.id=tthreads.ticket
WHERE
(tincidents.title LIKE '%$keyword[0]%' OR
tincidents.description LIKE '%$keyword[0]%' OR
tthreads.text LIKE '%$keyword[0]%' OR
tsubcat.name LIKE '$keyword[0]' OR
tcategory.name LIKE '$keyword[0]' OR
tincidents.id = '$keyword[0]' OR
tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[0]%' or lastname LIKE '%$keyword[0]%'))
AND
(tincidents.title LIKE '%$keyword[1]%' OR
tincidents.description LIKE '%$keyword[1]%' OR
tthreads.text LIKE '%$keyword[1]%' OR
tsubcat.name LIKE '$keyword[1]' OR
tcategory.name LIKE '$keyword[1]' OR
tincidents.id = '$keyword[1]' OR
tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[1]%' or lastname LIKE '%$keyword[1]%'))
AND disable='0'
";
// $from = "
// FROM tincidents, tstates, tthreads
// WHERE
// tincidents.state=tstates.id AND
// tincidents.id=tthreads.ticket AND
// (title LIKE '%$keyword[0]%' OR
// tincidents.description LIKE '%$keyword[0]%' OR
// tthreads.text LIKE '%$keyword[0]%' OR
// tincidents.id = '$keyword[0]' OR
// tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[0]%' or lastname LIKE '%$keyword[0]%'))
// AND
// (tincidents.title LIKE '%$keyword[1]%' OR
// tincidents.description LIKE '%$keyword[1]%' OR
// tthreads.text LIKE '%$keyword[1]%' OR
// tincidents.id LIKE '$keyword[1]' OR
// tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[1]%' or lastname LIKE '%$keyword[1]%'))
// AND disable='0'
// ";
}
else if ($nbkeyword==3)
{
$from = "
FROM tincidents
LEFT JOIN tcategory ON tincidents.category=tcategory.id
LEFT JOIN tsubcat ON tincidents.subcat=tsubcat.id
LEFT JOIN tstates ON tincidents.state=tstates.id
LEFT JOIN tthreads ON tincidents.id=tthreads.ticket
WHERE
(tincidents.title LIKE '%$keyword[0]%' OR
tincidents.description LIKE '%$keyword[0]%' OR
tthreads.text LIKE '%$keyword[0]%' OR
tsubcat.name LIKE '$keyword[0]' OR
tcategory.name LIKE '$keyword[0]' OR
tincidents.id = '$keyword[0]' OR
tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[0]%' or lastname LIKE '%$keyword[0]%'))
AND
(tincidents.title LIKE '%$keyword[1]%' OR
tincidents.description LIKE '%$keyword[0]%' OR
tthreads.text LIKE '%$keyword[0]%' OR
tsubcat.name LIKE '$keyword[0]' OR
tcategory.name LIKE '$keyword[0]' OR
tincidents.id = '$keyword[0]' OR
tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[0]%' or lastname LIKE '%$keyword[0]%'))
AND
(tincidents.title LIKE '%$keyword[2]%' OR
tincidents.description LIKE '%$keyword[2]%' OR
tthreads.text LIKE '%$keyword[2]%' OR
tsubcat.name LIKE '$keyword[2]' OR
tcategory.name LIKE '$keyword[2]' OR
tincidents.id = '$keyword[2]' OR
tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[2]%' or lastname LIKE '%$keyword[2]%'))
AND disable='0'
";
// $from = "
// FROM tincidents, tstates, tthreads
// WHERE
// tincidents.state=tstates.id AND
// tincidents.id=tthreads.ticket AND
// (tincidents.title LIKE '%$keyword[0]%' OR
// tincidents.description LIKE '%$keyword[0]%' OR
// tthreads.text LIKE '%$keyword[0]%' OR
// tincidents.id = '$keyword[0]' OR
// tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[0]%' or lastname LIKE '%$keyword[0]%'))
// AND
// (tincidents.title LIKE '%$keyword[1]%' OR
// tincidents.description LIKE '%$keyword[1]%' OR
// tthreads.text LIKE '%$keyword[1]%' OR
// tincidents.id LIKE '$keyword[1]' OR
// tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[1]%' or lastname LIKE '%$keyword[1]%'))
// AND
// (tincidents.title LIKE '%$keyword[2]%' OR
// tincidents.description LIKE '%$keyword[2]%' OR
// tthreads.text LIKE '%$keyword[2]%' OR
// tincidents.id LIKE '$keyword[2]' OR
// tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[2]%' or lastname LIKE '%$keyword[2]%'))
// AND disable='0'
// ";
}
else
{
$from = "
FROM tincidents
LEFT JOIN tcategory ON tincidents.category=tcategory.id
LEFT JOIN tsubcat ON tincidents.subcat=tsubcat.id
LEFT JOIN tstates ON tincidents.state=tstates.id
LEFT JOIN tthreads ON tincidents.id=tthreads.ticket
WHERE
(
tincidents.title LIKE '%$keyword[0]%' OR
tincidents.description LIKE '%$keyword[0]%' OR
tthreads.text LIKE '%$keyword[0]%' OR
tsubcat.name LIKE '$keyword[0]' OR
tcategory.name LIKE '$keyword[0]' OR
tincidents.id = '$keyword[0]' OR
tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[0]%' or lastname LIKE '%$keyword[0]%')
)
AND disable='0'
";
}
// else
// {
// $from = "
// FROM tincidents, tcategory, tsubcat, tstates, tthreads
// WHERE
// tincidents.state=tstates.id AND
// tincidents.subcat=tsubcat.id AND
// tincidents.category=tcategory.id AND
// tincidents.id=tthreads.ticket AND
// (
// tincidents.title LIKE '%$keyword[0]%' OR
// tincidents.description LIKE '%$keyword[0]%' OR
// tthreads.text LIKE '%$keyword[0]%' OR
// tsubcat.name LIKE '$keyword[0]' OR
// tcategory.name LIKE '$keyword[0]' OR
// tincidents.id = '$keyword[0]' OR
// tincidents.user LIKE (SELECT max(id) FROM tusers where firstname LIKE '%$keyword[0]%' or lastname LIKE '%$keyword[0]%')
// )
// AND disable='0'
// ";
// }
?>
Clément
Re: La recherche ne fonctionne pas
Posté : mar. 4 mars 2014 20:07
par Flox
Effectivement cela fonctionnerai mais la jointure gauche entraîne une grande perte de performance sur les grosses bases.
Normalement tout ticket à obligatoirement une entrée thread avec la date d'ouverture.
Vérifier que vous avez également bien une catégorie de renseignée.
cdt
Re: La recherche ne fonctionne pas
Posté : mer. 4 juin 2014 07:35
par Ptitvincou
Bonjour,
Je me permets de remonter ce post pour une raison simple,
lors du basculement d'une base de données de la version 2 a la version 3, la table thread n'est pas remplie .... donc on perd l'historique dans la recherche.
Cordialement,
Re: La recherche ne fonctionne pas
Posté : mar. 15 juil. 2014 20:21
par Flox
Bonjour,
pouvez vous essayer de passer cette requête et me redire. merci
Code : Tout sélectionner
INSERT INTO `tthreads` (
`id` ,
`ticket` ,
`date` ,
`author` ,
`text` ,
`type` ,
`tech1` ,
`tech2` ,
`group1` ,
`group2` ,
`user`
)
SELECT NULL,id,0,0,0,0,9,0,0,0 FROM tincidents WHERE tincidents.disable=0 AND id NOT IN (SELECT ticket FROM tthreads);