Как манипулировать данными набора строк из sql в php - PullRequest
2 голосов
/ 10 февраля 2012

Я задал вопрос о том, как получить данные из разных таблиц в sql Как получить данные из 4 таблиц в запросе 1 sql?

Когда я запускаю запрос для моих образцов данных, я получаю 3 строки, в любом случае, поскольку между курсами и категориями существует отношение «многие ко многим», я всегда получаю больше строк для одного курса.

Мой вопрос: как мне обрабатывать эти данные в PHP? Я получаю массив, и то, что я хочу, будет что-то вроде:

Array ( 
  [0] => stdClass Object ( 
      [name] => course name 
      [tutor] => tutor name 
      [categories] => Array ( categories here ) 
);

Стоит ли просто извлекать данные из категорий в цикле foreach после извлечения курса? Это означало бы плохую производительность для большого количества данных.

1 Ответ

2 голосов
/ 10 февраля 2012

Стоит ли просто извлекать данные из категорий в цикле foreach после извлечения курса?Это будет означать плохую производительность для большого объема данных.

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

Но если вам действительно нужно объединить все данные в одном запросе и сохранить их в одном большом массиве, вы можете сделать что-то вроде этого:

$last_id = -1;
for( $x=0; $x < count($myArray); $x++ ) {
  if( $last_id != $myArray[$x]['id'] ) {
    //course changed, do something!
  } 
  //do more stuff...
  $last_id = $myArray[$x]['id'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...