<?
$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> ';
}
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
При запросе типа:
Выведет тоже самое что при запросе:
И все результаты верные.
Чесно говоря не вижу проблемы, допустим тип таблицы 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
Опять же не вижу проблемы:
Если LIKE не найдет совпадений он не выведет результаты.
Опять же не вижу проблемы:
$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? тип базы?