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

Форум MySQL

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

 

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

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

тема: Алфавитный вывод данных
 
 автор: selma   (16.06.2012 в 06:34)   письмо автору
 
 

Добрый день форумчане.


CREATE TABLE IF NOT EXISTS `table` (
  `id` int(4) NOT NULL auto_increment,
  `name` varchar(200) NOT NULL,
  PRIMARY KEY  (`id`)
)  ;

--
-- Дамп данных таблицы `table`
--

INSERT INTO `table` (`id`, `name`) VALUES
(1,  'Алексей'),
(2,  'Антон'),
(3, 'Виталий'),
(4, 'Георгий'),
(5, 'Светлана'),
(6, 'Юрий'),
(7, 'Юлия'),
(8, 'Савелий'),
(9, 'Галина'),
(10, 'Мария');


Как вывести все русские имена в алфавитном порядке в таком виде:

А
Алексей
Антон
В
Виталий
Г
Галина
Георгий

Хочется, чтобы выполнялось такое условие сортировки: Галина идет перед Георгий
Но если так нельзя или супер сложно, то можно просто по алфавиту

Подскажите как реализовать?

  Ответить  
 
 автор: confirm   (16.06.2012 в 08:46)   письмо автору
 
   для: selma   (16.06.2012 в 06:34)
 

Сортируйте запрос по имени, а при выводе сравнивайте значение переменной, объявленной вне цикла, с первой буквой имен, и при неравенстве выводите первую букву, и присваивайте ее этой переменной.

  Ответить  
 
 автор: Valick   (16.06.2012 в 09:30)   письмо автору
 
   для: selma   (16.06.2012 в 06:34)
 

почитайте тему там как раз ваш случай

вот это переделайте под свою структуру бд
$sql = mysql_query ("SELECT LEFT(`brand_auto_title,1`) abc , * FROM `brand_auto` ORDER BY `brand_auto_title`");
$bank="";
echo "<div class='zag'>";
while ($sql_row = mysql_fetch_array($sql)) {
if($sql_row[abc]<>$bank){$bank=$sql_row[abc]; echo "</div><div class='abc'>.$sql_row[abc]."<br /><hr />";
     echo $sql_row[brand_auto_title]."<br />";
 }
echo "</div>"; 


confirm, обозначил алгоритм словами, я подкрепил примером, за вами обработка "напильником"

  Ответить  
 
 автор: selma   (16.06.2012 в 12:39)   письмо автору
 
   для: Valick   (16.06.2012 в 09:30)
 

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

  Ответить  
 
 автор: confirm   (16.06.2012 в 13:09)   письмо автору
 
   для: selma   (16.06.2012 в 12:39)
 

А разве SELECT ... ORDER BY `name` сортирует как-то иначе? Если у вас такое происходит, то значит е в этом имени английская.

  Ответить  
Rambler's Top100
вверх

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