Royal Flash
-=MaestrO=-
Вывод информации в определенном порядке.
WHERE a = $a[0] OR a = $a[1] OR a = $a[2]
Как в такой ситуации вывести ($row = mysql_fetch_array($result) в порядке row[0] = a[0], row[1] = a[1], row[2] = a[2])? Ведь на самом деле MySQL выводит данный резултат в произвольном порядке, например: a[0], a[2], a[1]. Т.е. нужно, чтобы результат сортировался по ключу массива.
Пример:
Есть 2 базы:
дерево каталогов: t1: id, parent, name
база наполнения: t2: id, content
Запрос, на чтение дерева, который отдает id дерева от начала ветви в конец - записывается id в array($id_tree_bransch).
Например, пользователь углубился на 3 подкаталога вниз. Нужно проверить следующее: есть ли id данного подкаталога в базе t2, если нет, то есть ли id его родителя, если нет, то есть ли id родителя родителя и т.д. до начала ветви.
Запрос следующий:
SELECT t1.*, t2.* FROM t1, t2
WHERE t2.id = t1.id
AND (t2.id = '.$id_tree_bransch[0].' OR t2.id = '.$id_tree_bransch[1].' or t2.id = '.$id_tree_bransch[2])
$id_tree_bransch[0] - id начала ветви
$id_tree_bransch[1] - дочерний id $id_tree_bransch[0]
$id_tree_bransch[2] - дочерний id $id_tree_bransch[1]
Проблема в том, что MySQL выводит данные не в порядке, как указано в запросе (в круглых скобках, между OR), а произвольно... Как можно вывести все в необходимом порядке, т.е. от $id_tree_bransch[0] до $id_tree_bransch[2]?
WHERE a = $a[0] OR a = $a[1] OR a = $a[2]
Как в такой ситуации вывести ($row = mysql_fetch_array($result) в порядке row[0] = a[0], row[1] = a[1], row[2] = a[2])? Ведь на самом деле MySQL выводит данный резултат в произвольном порядке, например: a[0], a[2], a[1]. Т.е. нужно, чтобы результат сортировался по ключу массива.
Пример:
Есть 2 базы:
дерево каталогов: t1: id, parent, name
база наполнения: t2: id, content
Запрос, на чтение дерева, который отдает id дерева от начала ветви в конец - записывается id в array($id_tree_bransch).
Например, пользователь углубился на 3 подкаталога вниз. Нужно проверить следующее: есть ли id данного подкаталога в базе t2, если нет, то есть ли id его родителя, если нет, то есть ли id родителя родителя и т.д. до начала ветви.
Запрос следующий:
SELECT t1.*, t2.* FROM t1, t2
WHERE t2.id = t1.id
AND (t2.id = '.$id_tree_bransch[0].' OR t2.id = '.$id_tree_bransch[1].' or t2.id = '.$id_tree_bransch[2])
$id_tree_bransch[0] - id начала ветви
$id_tree_bransch[1] - дочерний id $id_tree_bransch[0]
$id_tree_bransch[2] - дочерний id $id_tree_bransch[1]
Проблема в том, что MySQL выводит данные не в порядке, как указано в запросе (в круглых скобках, между OR), а произвольно... Как можно вывести все в необходимом порядке, т.е. от $id_tree_bransch[0] до $id_tree_bransch[2]?