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

Форум MySQL

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

 

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

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

тема: Подскажите запрос для алфавитного вывода списка
 
 автор: AN   (17.02.2009 в 02:05)   письмо автору
 
 

Доброй ночи!

Подскажите плиз как можно с помощью запроса извлечь список наименований из поля в БД, отсортировать по возрастанию, сгруппировать по первой букве, вывести первую букву и ее список ...
точно знаю такое сделать можно !

результат хотелось бы такой:

А
аквариум
арбуз
Б
банан
батон
В
...
...

Спасибо если у кого привалялся такой такой скриптик )))

  Ответить  
 
 автор: cheops   (17.02.2009 в 12:08)   письмо автору
 
   для: AN   (17.02.2009 в 02:05)
 

Можно отталкиваться от следующего скрипта
<?php
  $query 
"SELECT * FROM tbl ORDER BY name";
  
$tbl mysql_query($query);
  if(!
$tbl) echo mysql_error();
  if(
mysql_num_rows($tbl))
  {
    
$letter "";
    while(
$result mysql_fetch_array($tbl))
    {
      if(
$letter != $result['name'][0])
      {
        
$letter $result['name'][0];
        echo 
"<h1>$letter</h1>";
      }
      echo 
"<p>".$result['name']."</p>";
    }
  }
?>

  Ответить  
 
 автор: AN   (17.02.2009 в 12:16)   письмо автору
 
   для: cheops   (17.02.2009 в 12:08)
 

здесь нужно указывать букву $letter = "";
а как сделать чтобы это все больше автоматизировать?
то есть, чтобы буквы определялись сами если на них присутствуют слова в списке?

  Ответить  
 
 автор: cheops   (17.02.2009 в 12:19)   письмо автору
 
   для: AN   (17.02.2009 в 12:16)
 

>здесь нужно указывать букву $letter = "";
>а как сделать чтобы это все больше автоматизировать?
Нет, дело в том что $letter = "" - это инициализация переменной. Далее эта переменная автоматически изменяется всякий раз в if-блоке, как происходит переход от одной буквы к другой.

  Ответить  
 
 автор: AN   (17.02.2009 в 12:58)   письмо автору
 
   для: cheops   (17.02.2009 в 12:19)
 

почемуто вообще ничего не выводит

  Ответить  
 
 автор: AN   (17.02.2009 в 13:05)   письмо автору
 
   для: AN   (17.02.2009 в 12:58)
 

о! спасибо, заработало

  Ответить  
 
 автор: AN   (17.02.2009 в 13:13)   письмо автору
 
   для: AN   (17.02.2009 в 13:05)
 

а вот как подобные результаты выводят в 3-4 колонки?
если делать в цикле в таблице, оно разносит на право, а как делать в столбик, и разнести на 3-4 столбика? может быть подскажите?

  Ответить  
 
 автор: AN   (17.02.2009 в 13:40)   письмо автору
 
   для: AN   (17.02.2009 в 13:13)
 

я думаю может подсчитать результаты запроса, поделить на 4, и выводит 1,2,3 и 4 части в разных колонках? но собьется по буквенные заголовки, если где то на "С" прирвется, то с новой колонки на "С " и начнется вот как тут быть?

вот хочу сделать типа как вот тут http://marketgid.com/ "все категории по алфавиту"

  Ответить  
 
 автор: AN   (17.02.2009 в 15:51)   письмо автору
 
   для: AN   (17.02.2009 в 13:40)
 

ауууууууууу подскажите, по зарез нужно!

  Ответить  
 
 автор: ols   (17.02.2009 в 15:59)   письмо автору
 
   для: AN   (17.02.2009 в 15:51)
 

Сделайте счетчик - в цикле for инициализируйте переменную и прибавляейте ей по одному значению. Как только значение будет равно 3 выводите </tr> и обнуляйте счетчик

  Ответить  
 
 автор: AN   (17.02.2009 в 16:06)   письмо автору
 
   для: ols   (17.02.2009 в 15:59)
 

точно, спасибо, я так обычно и делаю, но подумал это может можно как то стилем сделать?

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

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