Трудности при поиске русских слов по базе

Статус
В этой теме нельзя размещать новые ответы.

karen12

Постоялец
Регистрация
26 Фев 2012
Сообщения
108
Реакции
4
Есть таблица
PHP:
CREATE TABLE IF NOT EXISTS `reception` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `last_name` text NOT NULL,
  `first_name` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

есть скрипт поиска

$res=mysql_query("SELECT * FROM reception WHERE ((`last_name` LIKE '%".$search."%') OR (`first_name` LIKE '%".$search."%') ");

все файлы на UTF8
при подключение к базе mysql_query("SET NAMES `utf8`");
кодировка таблицы utf8_general_ci

при поиске русские слова не выводятса , в то время как слова написанные англискими буквами выводятся отлично, в чем может быть проблема?
 
А кодировка запроса тоже UTF8? точно?
 
на странице указана кодировка в виде?
Код:
<meta charset="utf-8" />
 
Последнее редактирование модератором:
да вот так <meta charset="utf-8" />
вы не можете мне помочь?

На вид правильно. Соответственно, должно искаться, если никаких иных проблем нет. Попробуйте все же подключиться напрямую к базе (через phpmyadmin, например) и сделать запросы вручную. Явной ошибки не видно, если только скрытые. Наиболее вероятно - в $search лежит строка, которую сервер не может найти в базе, это может быть:
- неверная кодировка
- пробелы лишние

Как-то ещё помочь, не имея доступа к БД, крайне сложно.
 
На вид правильно. Соответственно, должно искаться, если никаких иных проблем нет. Попробуйте все же подключиться напрямую к базе (через phpmyadmin, например) и сделать запросы вручную. Явной ошибки не видно, если только скрытые. Наиболее вероятно - в $search лежит строка, которую сервер не может найти в базе, это может быть:
- неверная кодировка
- пробелы лишние

Как-то ещё помочь, не имея доступа к БД, крайне сложно.
я пробовал удалить внутрение кавычки и оставить только одну выборку, все выводит, сделал вот так
$res=mysql_query("SELECT * FROM reception WHERE (`last_name` LIKE '%".$search."%')";
а было вот так
$res=mysql_query("SELECT * FROM reception WHERE ((`last_name` LIKE '%".$search."%') OR (`first_name` LIKE '%".$search."%') ");

на странице обработки и вывода есть еще
PHP:
          <?php
   $search = $_POST['search'];
if (empty($search)){
echo "<h2>Поле не заполнено</h2>";
}
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);  

?>
 
здесь ошибка со скобками. Уберите 1 открывающий скобку после where.
это я ошибся - хотел упрастить код для показа, весь код выглядит так
PHP:
  <table border="2" class="table  table-ayc-f table_all_recept" >
         <tr>
           <th style="text-align:center;" width="40">N</th>
           <th style="text-align:center;" width="120">Дата поступления</th>
           
               <th style="text-align:center;" width="120">Дата выписки</th>
               <th style="text-align:center;" width="330">ФИО</th>
         
           <th style="text-align:center;"  width="120"></th>
         </tr>
       
<?php
   $search = $_POST['search'];
if (empty($search)){
echo "<h2>Поле не заполнено</h2>";
}
$search = trim($search);
$search = stripslashes($search);
$search = htmlspecialchars($search);   

$res=mysql_query("SELECT * FROM `reception`WHERE  ((`last_name`LIKE '%".$search."%') OR (`first_name`LIKE '%".$search."%')  OR (`date_in`LIKE '%".$search."%') OR (`date_replace_out` LIKE '%".$search."%'))  AND `patient_userid`= '".$_SESSION['id']."'");
if ($res)
{$i=mysql_num_rows($res);

while ($row = mysql_fetch_array($res))
{
   echo "
       <tr>
         <td style='text-align:center;'>".$i--."</td>
           <td style='text-align:center;'> <a  href='recuest/reception_view.php?id=".$row['id']."'>".$row['date_in']."</a></td>
           <td style='text-align:center;'><a  href='recuest/reception_view.php?id=".$row["id"]." ' >
             ".$row["date_replace_out"]."</a></td>
             <td style='text-align:center;'><a  href='recuest/reception_view.php?id=".$row['id']."'>".$row['last_name']."  ".$row['first_name']."  ".$row['second_name']."</a></td>
       
           <td style='text-align:center;'><a  title='Խմբագրել' class='btn btn-primary' href='recuest/reception_edit.php?id=".$row['id']."'><i class='icon-edit'></i></a>&nbsp;&nbsp;
           <a class='btn btn-danger'  title='Ջնջել'  href='recuest/reception_delete.php?id=".$row['id']."'><i class='icon-trash'></i></a>
         
           </td>
         </tr>
   ";
}
mysql_free_result($res);
}
echo"
     </table>   

   ";
?>
 
А вы "AND patient_userid..." в конце убирали? Или с ним заработало?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху