[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Алфавитный поиск(навигатор)
igorianru
Доброй ночи, помогите разобраться, пытаюсь сделать алфавитный поиск или навигатор, незнаю как точно назвать вот :

<? 


$kls='т';
$sq2= mysql_query ("SELECT * FROM `stihi` WHERE `name`LIKE '%".$kls."%' ",$db);
$stih2 = mysql_fetch_array($sq2);

while($stih3=mysql_fetch_array($sq2)){
do { ?>

<p><strong><a href='moduls/proizv/all_l.php?id_stih=<?php echo $stih3["id_stih"]?>'><?php echo $stih3["name"]?></a></strong>
<?php
}
hile ($stih3 =mysql_fetch_array($sq2));
}
?>



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



Спустя 10 минут, 40 секунд (27.03.2012 - 20:42) I++ написал(а):
'SELECT * FROM `stihi` WHERE `name` LIKE \''.$kls.'%\'';


Еcли поле в базе не бинарное, то регистр-независимо выведет.

Если что можно так (костыль):

'SELECT * FROM `stihi` WHERE lower(`name`) LIKE \''.strtolower($kls).'%\'';


Но как мне не изменяет память, с полями varchar, text и тд, работает без зависимости от регистра, а вот varbinary уже зависит.

Спустя 37 минут, 59 секунд (27.03.2012 - 21:20) igorianru написал(а):
I++ не помогло... всё также регистр влияет на вывод, и что для меня тайна почему выводит слово в котором в помине нету буквы т "Сон" .

может кто делал Алфавитный навигатор?? поделитесь как сделать чтобы всё ровно было..

Спустя 16 часов, 37 минут, 58 секунд (28.03.2012 - 13:58) igorianru написал(а):
посидел повыдумывал полопатил инет добился результата, есть один неприятный косяк! если в базе нету поля имя которого начинается на букву алфавита то он выводит из базы все поля, но а если есть допустим в базе поле на имя которого начинается на А то выводит всё корректно. задача: если по запросу буквы не нашлось ничего в базе то ничего не выводить или вывести "по этому запросу ничего не нашлось"

За ранее огромное спасибо кто поможет!




<?php


$_SESSION['navigation'] = array("А","Б","В","Г","Д","Е","Ж","З","И","Й","К","Л","М","Н","О","П","Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Э","Ю","Я");


// Формируем запрос на извлечение первых букв товарных позиций
$query = 'SELECT SUBSTRING(name,1,1) AS letter FROM `stihi` GROUP BY `name` ORDER BY `name`';
$res = mysql_query($query);

foreach ($_SESSION['navigation'] as $letter)
{
echo '<a href="'.$_SERVER['PHP_SELF'].'?letter='.$letter.'">'.$letter.'</a>&nbsp';
}


echo '<p><a href="'.$_SERVER['PHP_SELF'].'">Все стихи</a></p>';
// Если передан параметр letter и он состоит из одного символа -
// выводим содержимое таблицы

if ( isset($_GET['letter']) and in_array($_GET['letter'], $_SESSION['navigenion']) ) {
$query = "SELECT * FROM `stihi` WHERE SUBSTRING(name,1,1) = '".$_GET['letter']."' ORDER BY `name`";
} else {
$query = "SELECT * FROM `stihi` ORDER BY `name`";
}
$res = mysql_query($query);
// Если имеется хотя бы одна запись - выводим её
if( mysql_num_rows( $res ) > 0 ) {
$i = 1;
echo '<table border="1" cellpadding="3" cellspacing="0">';
echo '<tr><th>№</th><th> </th><th> </th></tr>';
while( $prd = mysql_fetch_array( $res ) ) {
echo '<tr><td>'.$i.'</td><td>'.$prd['name'].'</td><td>'.$prd['id_stih'].'</td></tr>';
$i++;
}
}

?>

Спустя 13 минут, 21 секунда (28.03.2012 - 14:11) Renden написал(а):
igorianru
Чесно говоря не вижу проблемы, допустим тип таблицы myIsam поле в таблице `name` тип varchar и кодировка utf-8
При запросе типа:

SELECT * FROM `users` WHERE `name` LIKE 'д%'

Выведет тоже самое что при запросе:

SELECT * FROM `users` WHERE `name` LIKE 'Д%'

И все результаты верные.

Спустя 4 минуты, 19 секунд (28.03.2012 - 14:15) igorianru написал(а):
Renden я разобрался с регистром, вот скрипт последний, с ним проблемка

Спустя 7 минут, 27 секунд (28.03.2012 - 14:23) Renden написал(а):
igorianru
Опять же не вижу проблемы:

$query = mysql_query("SELECT * FROM `users` WHERE `name` LIKE 'д%'");
if(mysql_num_rows($query))
{
while($row = mysql_fetch_assoc($query))
echo $row['name'];
}
else
echo 'Ничего не найдено';

Если LIKE не найдет совпадений он не выведет результаты.

Спустя 49 минут, 15 секунд (28.03.2012 - 15:12) I++ написал(а):
Тип поля какой с именем? Varbinary? varchar? тип базы?
Быстрый ответ:

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