есть поисковая форма, которая Гетом передает строку в скрипт
<?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 условие
- In MySQL, SQL patterns are case-insensitive by default.
Следовательно, можно убрать UPPER.
В запросе: условие
Спустя 12 часов, 47 минут, 54 секунды (2.02.2012 - 11:45) timonbandit написал(а):
Спасибо за советы) но с кодировкой все в порядке - set names utf-8 ничего не изменило.
Upper тоже никак не повлиял. а заменил лайк на регэкспу и все как в сказке))
Ну и да, Asokol действительно AND тут совершенно не нужен)) Спасибо))
Upper тоже никак не повлиял. а заменил лайк на регэкспу и все как в сказке))
Ну и да, Asokol действительно AND тут совершенно не нужен)) Спасибо))