Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Алфавитная навигация
 
 автор: Равечка   (13.08.2006 в 17:24)   письмо автору
 
 

помогите люди добрые.
делаю видео-портал. и вывод у меня следующим образом. есть алфавит анг и русский.
соответственно при клике на букву выводятся все фильмы начинающиеся с это буквы.
запрос такого вида
select * from movies where name like '".$search."%';

но например когда я нажминаю на русскай алфивит то при поиске по букве Т, те же результат выдает поиск по букве Х или Ф или У

А по буквам Б В Г вообще всплывают фильмы начинающиеся с буквы А английской.

как поправить ситуацию?

   
 
 автор: Равечка   (13.08.2006 в 18:48)   письмо автору
 
   для: Равечка   (13.08.2006 в 17:24)
 

нуже? ((( помогите мне =(

   
 
 автор: Loki   (13.08.2006 в 19:23)   письмо автору
 
   для: Равечка   (13.08.2006 в 18:48)
 

http://softtime.ru/forum/read.php?id_forum=3&id_theme=7939&page=1
http://softtime.ru/forum/read.php?id_forum=3&id_theme=9261&page=1
http://softtime.ru/forum/read.php?id_forum=3&id_theme=9667&page=1

   
 
 автор: Равечка   (13.08.2006 в 19:53)   письмо автору
 
   для: Loki   (13.08.2006 в 19:23)
 

не получается....

т.е. запрос у меня

$act=$_GET['act'];
select * from films where MID(name,1,1) = '".$act."';

ccылка
для англ.
echo "<a href='index.php?act=".$eng[$i].">".$eng[$i]."</a>";

для русских
echo "<a href='index.php?act=".rawurlencode($rus[$i]).">".$rus[$i]."</a>";

выдает то же самое что и было.

   
 
 автор: Равечка   (13.08.2006 в 20:19)   письмо автору
 
   для: Равечка   (13.08.2006 в 19:53)
 

Обновила mysql до 4.1 как написано в топике по приведенным ссылкам.
ситуация не поправилась...

   
 
 автор: Равечка   (13.08.2006 в 22:46)   письмо автору
 
   для: Равечка   (13.08.2006 в 20:19)
 

cheops подскажи? :(

   
 
 автор: aexb   (13.08.2006 в 19:17)   письмо автору
 
   для: Равечка   (13.08.2006 в 17:24)
 

Можно попробовать после соединения с MySQL и выбора БД вписать в скрипт вот такую штуку:


<?
mysql_query
("SET collation_connection=cp1251_general_ci");
mysql_query("SET character_set_results=cp1251");
mysql_query("SET character_set_client=cp1251");
mysql_query("SET collation_database=cp1251_general_ci");
?>


То есть, произвести конвертацию данных в cp1251. Возможно, на сервере установлена другая кодировка базы.

Можете привести экспорт БД (можно не со всеми данными) и ту часть скрипта, которая отвечает за поиск?

   
 
 автор: Lelik   (13.08.2006 в 23:21)   письмо автору
 
   для: aexb   (13.08.2006 в 19:17)
 

Также можно в таблицу бд где храняться названия добавить поле языка фильма, например

lang ENUM('ru', 'en') NOT NULL DEFAULT 'ru'


а потом поисковый запрос примерно такого вида

<?php
select 
from movies where name like '".$search."%' AND lang='".$_POST['lang']."' order by name
?>

   
 
 автор: cheops   (14.08.2006 в 01:04)   письмо автору
 
   для: Равечка   (13.08.2006 в 17:24)
 

Версия MySQL какая?

   
 
 автор: Равечка   (14.08.2006 в 01:14)   письмо автору
 
   для: cheops   (14.08.2006 в 01:04)
 

4.1.10

проблему уже решила.... я сделала дополнительную колонку куда записываю при добавлении аски номер первой строчной буквы... а потом собственно поиск организовываю по айди.

Кому интересно - при добавлении функция примерно так будет выглядеть


$text = ord(strtolower(substr(trim($text), 0, 1)));


а при поиске просто сверяем ord('f') с полем в таблице...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования