[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с поиском по mysql
timonbandit
Подсобите новичку)
есть поисковая форма, которая Гетом передает строку в скрипт

<?php

Error_Reporting(E_ALL & ~E_NOTICE);
require_once 'config.php';
$config = new config();
$host = $config->dbhost;
$user = $config->dbuser;
$pass = $config->dbpass;

$baza=mysql_connect($host, $user, $pass) OR DIE ("holy fuckin shit");
$conn=mysql_select_db($config->dbname) OR DIE (mysql_error());

$search=$_GET['search'];

if (isset($search))
{
echo "<p>Вы искали: $search </p>";

$query = "SELECT id,manufacturer,model,color,type FROM list WHERE
UPPER (manufacturer) LIKE UPPER ('%
$search%')
AND UPPER (model) LIKE UPPER ('%
$search%')
OR UPPER (color) LIKE UPPER ('%
$search%')
OR UPPER (type) LIKE UPPER ('%
$search%')";
$result = mysql_query($query);

if (!$result){
echo "Ошибка при запросе";
exit(mysql_error());
}

$myarray = array(); // создаем пустой массив, страховка
$n = mysql_num_rows($result); // Узнаем количество элементов в выборке

for($i = 0; $i < $n; $i++){
$myarray[] = mysql_fetch_array($result);
}
$i=null;
echo "<table bgcolor='#ffffff' cellpadding='2' cellspacing='2' border='1' bordercolor='#000000' align='center' width='500px'>
<tr height='20' bgcolor='#ffffff' valign=top align=center>"
;
echo "<tr height='20' bgcolor='#ffffff' valign=top align=center>
<td>Номер</td>
<td>Производитель</td>
<td>Модель</td>
<td>Цвет</td>
<td>Кузов</td>
</tr>"
;
foreach($myarray as $value){
$i++;
echo "<tr height='20' bgcolor='#ffffff' valign=top align=center>
<td>
$i</td>
<td>"
.$value['manufacturer']."</td>
<td>"
."<a href='index.php?id=".$value['id']."'>".$value['model']."</a>"."</td>
<td>"
.$value['color']."</td>
<td>"
.$value['type']."</td>
</tr>"
;

}
echo "</table>";



}
?>


На странности вроде переменных в классе - это требование заказчика.
Но проблема в том, что скрипт ищет и находит значения на русском и не находит на английском(
База в utf-8 но была в 1251, может в кодировке где-то дело? Или еще где-то не могу разобраться!
Заранее спасибо)



Спустя 25 минут, 43 секунды (31.01.2012 - 21:35) vitaly777 написал(а):
хм.. может надо установить SET NAMES utf8 ?

Спустя 1 час, 21 минута, 55 секунд (31.01.2012 - 22:57) asokol написал(а):
http://dev.mysql.com/doc/refman/5.0/en/pattern-matching.html
- In MySQL, SQL patterns are case-insensitive by default.
Следовательно, можно убрать UPPER.

В запросе: условие AND OR условие OR условие OR условие

Спустя 12 часов, 47 минут, 54 секунды (2.02.2012 - 11:45) timonbandit написал(а):
Спасибо за советы) но с кодировкой все в порядке - set names utf-8 ничего не изменило.
Upper тоже никак не повлиял. а заменил лайк на регэкспу и все как в сказке))

Ну и да, Asokol действительно AND тут совершенно не нужен)) Спасибо))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.