търсене в Mysql

sle

Registered
$sql = "SELECT * FROM cars WHERE MATCH (header) AGAINST ('$search') ";
$query=mysql_query($sql) or die ('die:'.mysql_error());

while($rows=mysql_fetch_assoc($query)) {
echo '<ul class="list">';
echo $rows['image'];
echo $rows['header'];
echo '</ul>';
}


Защо може да не ми излизат резултатите?

Направил сам полето HEADER с ТИП MyISAM ,FULLTEXT и като търся по този начин нищо не ми искарва.. само страницирането.
 
$sql = "SELECT * FROM cars WHERE header LIKE $search LIMIT $start,$pp";
$query=mysql_query($sql) or die ('die:'.mysql_error());

while($rows=mysql_fetch_assoc($query)) {
echo '<ul class="list">';
echo $rows['image'];
echo $rows['header'];
echo '</ul>';
}


така отново проблем:

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 'as LIMIT 20,20' at line 1
 
PHP:
$query=mysql_query('SELECT * FROM cars WHERE header LIKE '.$search.' LIMIT '.$start.','.$pp);

while($rows=mysql_fetch_assoc($query)) { 
 echo '<ul class="list">';
 echo $rows['image'];
 echo $rows['header'];
 echo '</ul>';
}

Пробвай така
 
С MATCH (header) AGAINST искам да търся защото ми трябва така да търси ,че колкото повече кокдретизираш да става по точна търсачката.. $start и $pp са ми за страницирането.
 
Здравей,
мога да ти дам директно готов пример от работещ проект, предполагам ще ти свърши работа.
$sql = 'SELECT *, MATCH(title, description, tags) AGAINST ("' . $keywords . '") AS relevance FROM articles WHERE MATCH(title, description, tags) AGAINST ("' . $keywords . '") ORDER BY relevance DESC LIMIT ' . $offset . ',' . $limit;

Вече за MATCH можеш да си сложиш допълнителни опции като IN BOOLEAN MODE, IN NATURAL LANGUAGE MODE, IN NATURAL LANGUAGE MODE WITH QUERY EXPANSION или WITH QUERY EXPANSION
 
А за исползването на MATCH и другите работи трябва да имам ТИП на полето FULLTEXT INDEX нали така?

И друго да питам това става за търсене на цели заглавия и по точни резултати нали така?
 
Това е от документацията
MySQL has support for full-text indexing and searching:

A full-text index in MySQL is an index of type FULLTEXT.
Full-text indexes can be used only with MyISAM tables, and can be created only for CHAR, VARCHAR, or TEXT columns.

Ако търсиш само по заглавие, и търсенето заглавие съвпадне 1 към 1 със записа, relevance е 100 и излиза първо.
Аналогично на това, колкото по-малко е съвпадението, толкова по-назад излиза резултата.
 

Back
Горе