Выборка из базы и сортировка

BIC

Новичок
Выборка из базы и сортировка

Как выбрать и сгруппировать из базы данные по первой букве в алфавитном порядке, а потом так же по первой букве вывести на страницу?
Если не затруднит, напишите пример.
 

BIC

Новичок
О, как просто, спасибо.
А если серьезно?

К примеру у меня в базе идет строки:
Бета, Альфа, Анапа, Гринвич и т.п.
Мне нужно что бы на странице это выглядело вот так:
Альфа,
Анапа

Бета

Гринвич
и т.п.

Как это сделать? Как построить запрос(ы)? Какой после этого нужен будет кто, что бы это все вывести на страницу?
 

zerkms

TDD infected
Команда форума
А если серьезно?
серьёзно - пока не будет однозначного точного вопроса нормального ответа не жди.
работать за тебя здесь никто не будет.

выбрать по первой букве - LIKE
отсортировать - ORDER BY
сделать запрос - mysql_query + mysql_fetch_array
обойти в цикле - foreach
вывести в браузер - echo
 

BIC

Новичок
Автор оригинала: zerkms
выбрать по первой букве - LIKE
Т.е. по предложенному мной сценарию мне нужно будет создать 59 запросов типа LIKE 'БУКВА%'?
И потом так же сделать при выводе?
 

zerkms

TDD infected
Команда форума
мде.
сударь, расскажите задачу внятным русским языком.

а потом так же по первой букве вывести на страницу?
сгруппировать из базы данные по первой букве в алфавитном порядке
определись. оформи в виде понятных фраз.
 

BIC

Новичок
Автор оригинала: BIC
К примеру у меня в базе идут строки:
Бета, Альфа, Анапа, Гринвич и т.п.
Мне нужно что бы на странице это выглядело вот так:
Альфа,
Анапа

Бета

Гринвич
и т.п.

Как это сделать? Как построить запрос(ы)? Какой после этого нужен будет код, что бы это все вывести на страницу?
 

zerkms

TDD infected
Команда форума
при чём тут тогда группировка и выборка по первой букве?
во время вывода (foreach) проверяй первую букву ($string[0]) и если она сменилась - делай отступ (echo '<br />';)
 

BIC

Новичок
Автор оригинала: zerkms
при чём тут тогда группировка и выборка по первой букве?
во время вывода (foreach) проверяй первую букву ($string[0]) и если она сменилась - делай отступ (echo '<br />';)
Хорошо, а как тогда сделать что бы перед каждым блоком писать соответствующую букву?

Пример:

= А =
Альфа,
Анапа

= Б =
Бета

= Г =
Гринвич
и т.п.
 

BIC

Новичок
Спасибо.

-~{}~ 29.12.09 01:26:

Автор оригинала: zerkms
при чём тут тогда группировка и выборка по первой букве?
во время вывода (foreach) проверяй первую букву ($string[0]) и если она сменилась - делай отступ (echo '<br />';)
Что-то я сразу упустил этот момент:
Как в foreach проверить сменилась ли $string[0]?
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
В конце цикла присваиваешь какой-нибудь переменной строковое значение в виде 1-й буквы
В начале цикла проверяешь:
1. Установлена ли "какая нибудь" переменная.
2. Равняется ли текущее значение "первой буквы" с тем что сохранил в "какой-нибудь" переменной.

Если хоть одно условие нарушается - "показываешь" букву
 

BIC

Новичок
Так?

PHP:
while(list($termin) = mysql_fetch_array($q)) {
	if ($i && $i != $termin[0]) { echo '<br>'.$termin[0].'<br>'; }
	else { echo '<br>'; }
	echo $termin;
	$i = $termin[0];
}
 

Вурдалак

Продвинутый новичок
Типа того.

-~{}~ 29.12.09 11:04:

Только <br /> всё же после вывода названия нужно ставить, наверное.

PHP:
<?php
$result = mysql_query(...);
$c = '';

while( $row = mysql_fetch_assoc($result) )
{
	if( $c != $row['name'][0] )
	{
		if( $c ) echo '<br />';
		echo $row['name'][0], '<br />';
		$c = $row['name'][0];
	}

	echo $row['name'], '<br />';
}
?>
 
Сверху