-А-
арбуз
апельсин
акула
-Б-
бобры
банан
-В-
....
и тд, то есть отсортировать массив по первой букве и вывести соответственно, подозреваю что тут нужно использовать регулярные выражения, но пока что ничего у меня не выходит, расчитываю на помощь.
Вот код вывода без разделения на буквы как надо, а просто по возрастанию (в алфавитном порядке).
$sql = "SELECT `alf` FROM `alfavit`";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$alf=$row["alf"];
echo"<dt>$alf</a>";
}
Спустя 1 минута, 16 секунд (17.09.2009 - 17:11) php_new написал(а):
*в столбце alf
Спустя 2 минуты, 12 секунд (17.09.2009 - 17:13) stepan написал(а):
Если я правильно тебя понял то тебе понадобиться ORDER BY `alf`
Спустя 3 минуты, 37 секунд (17.09.2009 - 17:16) php_new написал(а):
$sql = "SELECT `alf` FROM `alfavit` ORDER BY `alf`";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$alf=$row["alf"];
echo"<dt>$alf";
}
некоторые опечатки были, ORDER BY решает задачу сортировки по возрастанию, но мне все значения надо разбить по начальным буквам, как я указал в теме ) А это уже не выходит
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$alf=$row["alf"];
echo"<dt>$alf";
}
некоторые опечатки были, ORDER BY решает задачу сортировки по возрастанию, но мне все значения надо разбить по начальным буквам, как я указал в теме ) А это уже не выходит
Спустя 9 минут, 50 секунд (17.09.2009 - 17:26) Michael написал(а):
Цитата (php_new @ 17.09.2009 - 14:16) |
но мне все значения надо разбить по начальным буквам, как я указал в теме ) А это уже не выходит |
Ты хочешь чтобы прям в результатах запроса кроме слов были строки:
-А-
-Б-
Так что ли?
Спустя 8 минут, 45 секунд (17.09.2009 - 17:35) php_new написал(а):
да
Спустя 4 минуты, 45 секунд (17.09.2009 - 17:40) php_new написал(а):
меня даже не пугает вариант, если содержимое каждой буквы будет выводиться отдельным циклом, важен лишь результат, которого я добиться пока не смог
Спустя 1 час, 4 минуты, 24 секунды (17.09.2009 - 18:44) Guest написал(а):
проверяй в цикле
который у тебя уже есть
если первая буква в слове (которое в переменной $alf)
изменилась, то выводи букву а потом уже
echo"<dt>$alf</a>";
и используй теги кода php/sql/html
который у тебя уже есть
если первая буква в слове (которое в переменной $alf)
изменилась, то выводи букву а потом уже
echo"<dt>$alf</a>";
и используй теги кода php/sql/html
Спустя 12 минут, 50 секунд (17.09.2009 - 18:57) php_new написал(а):
меня интересует как это сделать, теоретически я понимаю что должно быть, но как это сделать на практике )
Кто-нить может модернизировать мой код или привести свой, как это реализовать
Кто-нить может модернизировать мой код или привести свой, как это реализовать

Спустя 8 минут, 33 секунды (17.09.2009 - 19:06) Guest написал(а):
у нас тут помогают, а не решают за когото не на пользу просящему
php.net -> функция:
substr()
и одно условие if
и твои варианты, - если что поправят я думаю
php.net -> функция:
substr()
и одно условие if
и твои варианты, - если что поправят я думаю
Спустя 8 минут, 57 секунд (17.09.2009 - 19:15) php_new написал(а):
пробовал уже и substr, ничего не вышло... мне кажется код не большой будет, если кто-то знает решение, то 2-3 строки добавить к коду не составит труда, я уже неделю мучаюсь, ладно еще неделю помучаюсь.
Спустя 38 секунд (17.09.2009 - 19:15) Guest написал(а):
ну так напиши что ты там придумал с substr
Спустя 30 секунд (17.09.2009 - 19:16) Michael написал(а):
PHP |
$sql = "SELECT `alf` FROM `alfavit` ORDER BY `alf`"; |
Спустя 6 минут, 41 секунда (17.09.2009 - 19:22) Guest написал(а):
сломал весь учебный процесс.. ай ай..
Спустя 3 минуты, 1 секунда (17.09.2009 - 19:25) Michael написал(а):
Цитата (Guest @ 17.09.2009 - 16:15) |
сломал весь учебный процесс.. ай ай.. . |
Guest - очень хотелось ответить -
это мой первый ответ в "PHP для знатоков"





Спустя 5 минут, 51 секунда (17.09.2009 - 19:31) php_new написал(а):
Guest
Michael
Огромное искреннее спасибо !!! Впервые за помощью обращаюсь на форум и сразу успешно, спасибо вам еще раз ))
Michael
Огромное искреннее спасибо !!! Впервые за помощью обращаюсь на форум и сразу успешно, спасибо вам еще раз ))
Спустя 1 минута, 30 секунд (17.09.2009 - 19:33) php_new написал(а):
Учебный процесс не сломан )) Указали мне на мои дыры в знаниях php, залатывать буду )
Спустя 27 минут, 56 секунд (17.09.2009 - 20:01) kirik написал(а):
Michael
Эт самое.. а зачем там do-while?
Эт самое.. а зачем там do-while?
Спустя 1 минута, 32 секунды (17.09.2009 - 20:02) Guest написал(а):
ну что бы два раза написать mysql_fetch_array
это же очевидно! )
это же очевидно! )
Спустя 2 минуты, 16 секунд (17.09.2009 - 20:04) php_new написал(а):
да, связку do while я убрал ) но вцелом решение именно то, что надо )
Спустя 11 часов, 47 минут, 19 секунд (18.09.2009 - 07:52) Michael написал(а):
Цитата (kirik @ 17.09.2009 - 17:01) |
Michael Эт самое.. а зачем там do-while? |
Первоначальное значение сначала хотел присвоить из первой строки, а не пусто - но потом подумал что и пусто сойдет, а цикл остался...

Спустя 2 часа, 30 минут, 7 секунд (18.09.2009 - 10:22) Gram написал(а):
А можно знаете еще как. добавить в таблицу записи типа:
Аааа
Аяяя
Бааа
Бяяя
и т.д.
тогда можно обойтись одним циклом для вывода всего алфавита.
потом после приведенного выше запроса данные выстоятся так:
Аааа
Арбуз
Апельсин
Акула
Аяяя
Бааа
Банан
Бобры
Бяяя
потом регулярками заменяете Бааа на открывающий элемент дизайна с буквой "б", а яяя на закрывающий элемент дизайна.
проблем с сортировкой никогда не возникнет, если будете обрабатывать все входящие в базу данные $name=ucfirst(strtolower($name));
Аааа
Аяяя
Бааа
Бяяя
и т.д.
тогда можно обойтись одним циклом для вывода всего алфавита.
потом после приведенного выше запроса данные выстоятся так:
Аааа
Арбуз
Апельсин
Акула
Аяяя
Бааа
Банан
Бобры
Бяяя
потом регулярками заменяете Бааа на открывающий элемент дизайна с буквой "б", а яяя на закрывающий элемент дизайна.
проблем с сортировкой никогда не возникнет, если будете обрабатывать все входящие в базу данные $name=ucfirst(strtolower($name));
Спустя 1 час, 4 минуты, 48 секунд (18.09.2009 - 11:27) Michael написал(а):
Gram, в базе должны храниться данные, а не какие-то оформительные элементы
.

Спустя 1 месяц, 12 дней, 11 часов, 57 минут, 14 секунд (31.10.2009 - 00:24) Guest написал(а):
hh