как отсортировать результат запроса в php? - PullRequest
0 голосов
/ 04 июня 2009

Я пытаюсь отсортировать результат запроса в массив.

У меня следующий запрос.

"select s.*, a.* from students left join addresses as a";

возвращает

s.id
s.name
a.id
a.student_id
a.address

Я хотел бы сделать приведенный выше результат в массив с s и ключами.

array(
  "s"=>array("id"=>"value","name"=>"value")
  ,"a"=>array("id"=>"value","student_id"=>"value","address"=>"value)
)

Должен ли я сделать свою собственную функцию для этого или есть внутренняя функция?

Ответы [ 2 ]

1 голос
/ 04 июня 2009

В стороне: Я полагаю, что в вашем текущем коде s.id будет перезаписан a.id, если вы выберете строки в качестве ассоциативных массивов.

Теперь перейдем к одному возможному подходу ...

Одним из аспектов того, как возвращаются результаты, является потеря таблицы, из которой пришел столбец. Если вы обнаружите, что хотите выполнить постобработку набора результатов, возможно, вы можете присвоить псевдоним каждому столбцу, переименовав его следующим образом:

$query = "SELECT
    s.id         AS s_id
    s.name       AS s_name
    a.id         AS a_id
    a.student_id AS a_student_id
    a.address    AS a_address
    ... ";

Как только вы это сделаете, вы можете организовать данные на основе substr ($ key, 0,1) и получить «имя основного столбца с substr ($ key, 2).

Если у вас есть такие, вы можете зацикливаться внутри каждой строки, чтобы создать структуру данных, с которой вы хотите работать.

1 голос
/ 04 июня 2009

Вы должны сделать это самостоятельно, если ни по какой другой причине, кроме таблицы, не идентифицируемой в PHP из результата запроса. Вы получаете только имя столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...