Не могу корректно отсортировать массив.

RHSC

Новичок
Не могу корректно отсортировать массив.

Кусок кода:

$i=0;
while ($row=mysql_fetch_array($res))
{
$listArray[$i]["catname"]=$row["cat_name"];
$listArray[$i]["catid"]=$row["cat_id"];
$i++;
}

Как мне отсортировать массив $listArray по значению ["catname"] (по алфавиту) ?
 

RHSC

Новичок
zerkms, действительно. так гораздо проще. Как мне это самому в голову не пришло ? :) Спасибо.
 

Rommul

Новичок
Поразительно. Тоже столкнулся с этой проблемой сейчас. Минут 20 думал. А потом вспомнил что сегодня где то видел уже решение это проблемы. Спасибо zerkms .
 

RHSC

Новичок
Вот так я сделал:
function cmp ($a, $b) {
return strcmp($a["catname"], $b["catname"]);
}
usort($listArray, "cmp");

Все работает.
 

RHSC

Новичок
zerkms, нет через запрос не получится, потому что полное название категории ("catname") формируется из нескольких названий категорий (дочерние+родительские).
 

RHSC

Новичок
Я SQL плохо знаю. Сейчас сяду за учебник, а то не совсем понятно, что вы предлагаете.
 

Фанат

oncle terrible
Команда форума
очень плохо, что ты плохо SQL знаешь.
потому что сейчас ты напоминаешь крестьянина, которому дали автомобиль для того чтобы картошку на рынок отвезти. Он поблагодарил, загрузил в багажник картошку, привязал к бамперу веревку... и потащил!

Какой вообще смысл использовать базу данных только для ХРАНЕНИЯ данных, как это делаешь ты? Если ВСЯ сила и смысл базы - в ОБРАБОТКЕ данных?
 

RHSC

Новичок
вот фрагмент структуры таблицы category:

cat_id
cat_fatherid
cat_name

К примеру, содержание:

1 0 обмен
2 0 продажа
3 0 покупка
4 0 разное
5 1 автомобили
6 2 автомобили
7 3 автомобили
8 4 автомобили
9 6 б/у
10 6 новые

Мне необходимо вывести все категории. Причем полное название категории формируется из названий родительских категорий:

покупка
продажа
покупка - автомобили
продажа - автомобили - б/у
и т.д.

Как мне сформировать запрос, чтобы категории вывести в алфавитном порядке?
 

Фанат

oncle terrible
Команда форума
Oldwin
а ты структуру таблицы прочитал?

RHSC
хехе, весь мой пафос ушёл впустую. Сам-то я такие вещи сртирую, как раз, в скрипте =)
 

Фанат

oncle terrible
Команда форума
вообще, конечно, сортировать древовидную структуру по алфавиту - это надо ещё додуматься.
 

Oldwin

Новичок
Oldwin
а ты структуру таблицы прочитал?
Да. Я дал повод в этом усомниться?
Фанат, вот и я другого выхода не нашел.
"Вы игнорировали мой вопрос относительно магнитофона" (c)
Я так понял у тебя есть еще одна таблица вид
cat_fatherid
cat_name
где cat_fatherid уникальное значение и ему соотвесвует определенное строковое поле cat_name? Это и есть название родительской категории?
 

Oldwin

Новичок
Oldwin
ты запросик-то напиши.
PHP:
SELECT CONCAT(father.name, ' - ' , category.name) AS abc
FROM father LEFT JOIN category ON father.f_id=category.f_id 
ORDER BY abc;
Соотвественно названия столбцов поменять на свои надо.
 
Сверху