Форматирование данных MySQL Query в пользовательский массив - PullRequest
0 голосов
/ 27 января 2010

Из моего запроса к базе данных возвращаются следующие данные:

+---------------+-----------+------------------+--------------+-------+
| district_name | school_id | school_name      | section      | score |
+---------------+-----------+------------------+--------------+-------+
| My ISD        |        11 | My First School  | English      |    20 |
| My ISD        |        11 | My First School  | Math         |    23 |
| My ISD        |        11 | My First School  | Reading      |    24 |
| My ISD        |        11 | My First School  | Science      |    23 |
| My ISD        |        12 | My Second School | English      |    11 |
| My ISD        |        12 | My Second School | Math         |    19 |
| My ISD        |        12 | My Second School | Reading      |    22 |
| My ISD        |        12 | My Second School | Science      |    26 |
+---------------+-----------+------------------+--------------+-------+

Мне нужно поместить эти данные в массив, чтобы легко вывести таблицу баллов по школам:

School                  English  Math  Reading Science
-------------------------------------------------------
My First School         20       23    24      23
My Second School        11       19    22      26

У меня проблемы с форматированием этих данных в массив, который выполняет это. Идеальная структура будет:

array(
  $schoolName => array(
    'results' => array(
       'section' => $section_name
       'score' => $score
    ),
  ),
);

Я пробовал несколько подходов, но не могу заставить их работать правильно.

Ответы [ 2 ]

0 голосов
/ 27 января 2010
while ($row = mysql_fetch_array($query)) { //you can define the query, right?
    $array[$row['school_name']]['results'][$row['section']] = $row['score'];
}

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

0 голосов
/ 27 января 2010
$table_rows = array();
while ($row = mysql_fetch_assoc($mysql_result)) {
  $school_name = $row['school_name'];
  $table_rows[$school_name]['results'][$row['section']] = $row['score'];
  // adding the other stuff to $table_rows...
}

Надеюсь, это поможет.

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