Autor Zpráva
Benny17
Profil
Ahoj všichni, řeším takový problém s fulltextovým vyhledáváním. Napsal jsem si podle návodů skript, ale nefunguje mi a já nevím, kde mám chybu. Vypisuje to You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MATCH (nazev, popis) AGAINST ('vec' IN BOOLEAN MODE) AS skore1 , ( ' at line 3 a ten kód je tedy
<?php
//zde mám připojení k db
....
//samotný kód
if(isset($_GET['hledat'])){
if(trim($_GET['hledat'])!=""){
$find=htmlspecialchars($_GET['hledat']);
$Vyhledej=mysql_query("
(
SELECT nazev, popis, obraz
MATCH (nazev, popis)
AGAINST ('".$find."' IN BOOLEAN MODE) AS skore1 ,
(
(2 * (
MATCH (nazev)
AGAINST ('".$find."')
)
) + (
MATCH (popis)
AGAINST ('".$find."')
)
) AS skore2
FROM ph_item HAVING skore1 > 0
)UNION(
SELECT nazev, popis, obraz
MATCH (nazev, popis)
AGAINST ('".$find."' IN BOOLEAN MODE) AS skore1 ,
(
(2 * (
MATCH (nazev)
AGAINST ('".$find."')
)
) + (
MATCH (popis)
AGAINST ('".$find."')
)
) AS skore2
FROM ph_quest HAVING skore1 > 0
") or die (mysql_error());
}else{
echo "<h3>Není co k hledání!</h3>";
}
}
$PocetVysledku=mysql_num_rows($Vyhledej);
if($PocetVysledku==0){
echo "Není žádný vysledek!";
}else{
echo "<p><strong>Počet výsledků </strong>".$PocetVysledku."</p>";
$VypisThis=$Vyhledej;
$ShowScore=round(($zaznam['skore2']* 10),2);
}
while ($zaznam = mysql_fetch_array($VypisThis)) {
$nazev=$zaznam['nazev'];
$popis=$zaznam['popis'];
$obraz=$zaznam['obraz'];
$score2=$ShowScore;
echo "<b>$nazev</b><br />$popis<br />$score2";
}
?>
temistokles
Profil
Prečítaj si toto:
http://www.linuxsoft.cz/article.php?id_article=960
Benny17
Profil
To už jsem četl. Ale nevím, prostě na to nemohu příjít.
temistokles
Profil
Benny17
Ako prvé by som skontroloval verziu MySQL.
Benny17
Profil
verze mysql je 5.0.22

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0