|
|
|
| Допустим, у меня есть страница, на которой выведен алфавит:
А / B / С / D / и т.д.
Буквы выводятся со следующими ссылками:
А: http://soft.ru/index.ru?razdel=1&sym=A
B: http://soft.ru/index.ru?razdel=1&sym=B
и так далее.
Данные выводятся из sql-таблицы:
<?
$query = "SELECT id_news,
name,
FROM news
WHERE hide='show' ORDER BY ___________ DESC";
$news = mysql_query($query);
if (!$new) puterror("");
if(mysql_num_rows($new) > 0)
{
echo "<TABLE cellSpacing=0 cellPadding=0 width=100% border=0><TBODY>";
while($news = mysql_fetch_array($new))
{
echo "".$news['name']."”;< BR>
}
echo "</TBODY></TABLE>";
}
?>
|
Какой параметр нужно подставить в ORDER BY, для того чтобы сортировать данные в соответствии с буквой?
Заранее спасибо. | |
|
|
|
|
|
|
|
для: Shadow69
(27.06.2007 в 10:06)
| | Хм... вам разумнее использовать WHERE-условие, например
<?
$query = "SELECT id_news,
name,
FROM news
WHERE hide='show' AND name LIKE '$_GET[sym]%' ORDER BY name";
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(27.06.2007 в 10:39)
| | Спасибо, cheops.
Туплю. Конечно же WHERE. ORDER BY - сортировка по параметру. | |
|
|
|
|
|
|
|
для: cheops
(27.06.2007 в 10:39)
| | С английскими буквами всё понятно. А как сделать, чтобы сортировало по русским?
Чтобы "движок" не путал русскую "А" с английской "А". | |
|
|
|
|
|
|
|
для: Shadow69
(04.07.2007 в 11:02)
| | Точно также, только в GET-параметре передавать русскую А, предварительно пропустив её через функцию urlencode(). | |
|
|
|
|
|
|
|
для: cheops
(04.07.2007 в 11:14)
| | Вывожу ссылки на алфавитную навигацию следующим методом:
echo "<A href=$_SERVER[PHP_SELF]?section=3&sym=А>А</A>
<A href=$_SERVER[PHP_SELF]?section=3&sym=Т>Б</A>…";
Вывод из базы данных в соответствии с присвоенной буквой:
$query = "SELECT * FROM catalog WHERE hide='show' AND name LIKE '$_GET[sym]%' ORDER BY name";
|
В командной строке появляется следующие запросы:
При букве А: http://localhost/my_drive/index.php?section=3&sym=%C0
При букве Т: http://localhost/my_drive/index.php?section=3&sym=%D2
Вывод из базы данных выводится корректно, но если ввести напрямую в командной строке, например, http://localhost/my_drive/index.php?section=3&sym=А, то выводится http://localhost/my_drive/index.php?section=3&sym=%D0%90.
Из базы данных ничего не выводится.
Как сделать, чтобы в командной строке появлялись http://localhost/my_drive/index.php?section=3&sym=А, вместо http://localhost/my_drive/index.php?section=3&sym=%C0.
И самое главное нужно ли это?
P.S. Функцию ulrencode () применял. Если правильно применял, то ничего не изменяется.
Спасибо за ответ. | |
|
|
|
|
|
|
|
для: Shadow69
(13.08.2007 в 08:59)
| | >но если ввести напрямую в командной строке,
Символы национальных алфавитов не предназначены для ввода в "командную" (а на самом деле - адресную) строку браузера. | |
|
|
|
|
|
|
|
для: Trianon
(13.08.2007 в 10:10)
| | А как вывести все названия начинающиеся на цифры (с 0 до 9)
http://localhost/my_drive/index.php?section=3&sym=0-9
$query = "SELECT * FROM catalog WHERE hide='show' AND name LIKE '$_GET[????]%' ORDER BY name"; | |
|
|
|