Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема с поиском
Форумы портала PHP.SU » » Вопросы новичков » Проблема с поиском

Страниц (1): [1]
 

1. inkor - 06 Ноября, 2011 - 13:55:06 - перейти к сообщению
Здравствуйте, столкнулся со следующей проблемой:
есть база статей об автомобилях в ней две таблицы 1я - список марок, 2я- статьи, заголовки картинки и тд.

на сайте должна быть структура по маркам, делаю через поиск

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. //id $marka получаем из ссылки
  4. if (isset($_GET['marka'])) {$marka = $_GET['marka']; }
  5. if (!isset ($marka) or empty($marka)) {$marka = 1;}
  6.  
  7.  
  8. //Выбираем марки из базы
  9.            $result_marka = mysql_query ("SELECT marka FROM marki WHERE id='$marka'",$db);
  10. $myrow_marka = mysql_fetch_array ($result_marka);
  11.         $marka1 = $myrow_marka['marka'];
  12. //поиск
  13.  $result = mysql_query ("SELECT id,title,teaser,img FROM articles WHERE MATCH(title) AGAINST('$marka1') ORDER BY (id) DESC",$db);
  14. $myrow = mysql_fetch_array ($result);
  15.  
  16.  


поиск работает, НО если искать допустим "mazda", а в заголовке статьи написано "mazda2", то запрос эту статью не найдет. Как составить запрос правильно, чтобы он находил такие заголовки?
2. Bio man - 06 Ноября, 2011 - 13:59:46 - перейти к сообщению
"SELECT id,title,teaser,img FROM articles WHERE title LIKE '*{$marka1}*' ORDER BY (id) DESC"
3. inkor - 06 Ноября, 2011 - 15:11:24 - перейти к сообщению
не срабатывает, LIKE '%$marki1%' тоже не работает
4. Bio man - 06 Ноября, 2011 - 17:37:03 - перейти к сообщению
Цитата:
$marki1

Цитата:
$marka1 = $myrow_marka['marka'];
5. inkor - 07 Ноября, 2011 - 10:48:29 - перейти к сообщению
LIKE '%$marka1%' тоже не работает

в чем может быть причина? может в запросе использовать регулярные выражения?
6. sKaa - 07 Ноября, 2011 - 10:55:57 - перейти к сообщению
CODE (SQL):
скопировать код в буфер обмена
  1. SELECT * FROM articles WHERE title LIKE '%$marka%' ORDER BY id DESC

во первых попробуй SELECT *, мб ты пытаешься выделить столбцы которых вовсе нету.
во вторых я бы убрал (id) в ORDER BY
7. inkor - 09 Ноября, 2011 - 16:56:28 - перейти к сообщению
странно, если задаю явно

PHP:
скопировать код в буфер обмена
  1.     SELECT * FROM articles WHERE title LIKE '%mazda%' ORDER BY id DESC


то находит, а если через переменную,

PHP:
скопировать код в буфер обмена
  1.     SELECT * FROM articles WHERE title LIKE '%$marka1%' ORDER BY id DESC


то нет, кодировки совпадают, ILIKE тоже не работает ни на денвере ни на хостинге

 

Powered by ExBB FM 1.0 RC1