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

Форум MySQL

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

 

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

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

тема: Вывод данных по алфавиту
 
 автор: Shadow69   (27.06.2007 в 10:06)   письмо автору
 
 

Допустим, у меня есть страница, на которой выведен алфавит:

А / 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 (!
$newputerror("");
      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, для того чтобы сортировать данные в соответствии с буквой?

Заранее спасибо.

   
 
 автор: cheops   (27.06.2007 в 10:39)   письмо автору
 
   для: 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";
?>

   
 
 автор: Shadow69   (27.06.2007 в 13:21)   письмо автору
 
   для: cheops   (27.06.2007 в 10:39)
 

Спасибо, cheops.

Туплю. Конечно же WHERE. ORDER BY - сортировка по параметру.

   
 
 автор: Shadow69   (04.07.2007 в 11:02)   письмо автору
 
   для: cheops   (27.06.2007 в 10:39)
 

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

Чтобы "движок" не путал русскую "А" с английской "А".

   
 
 автор: cheops   (04.07.2007 в 11:14)   письмо автору
 
   для: Shadow69   (04.07.2007 в 11:02)
 

Точно также, только в GET-параметре передавать русскую А, предварительно пропустив её через функцию urlencode().

   
 
 автор: Shadow69   (13.08.2007 в 08:59)   письмо автору
 
   для: 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 () применял. Если правильно применял, то ничего не изменяется.

Спасибо за ответ.

   
 
 автор: Trianon   (13.08.2007 в 10:10)   письмо автору
 
   для: Shadow69   (13.08.2007 в 08:59)
 

>но если ввести напрямую в командной строке,

Символы национальных алфавитов не предназначены для ввода в "командную" (а на самом деле - адресную) строку браузера.

   
 
 автор: Shadow69   (17.09.2007 в 14:10)   письмо автору
 
   для: 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";

   
Rambler's Top100
вверх

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