Какой самый простой способ назначить каждый отдельный результат запроса MySQL в уникальный массив? - PullRequest
0 голосов
/ 09 мая 2011

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

     $query = "SELECT report,";
        $query.= "GROUP_CONCAT(DISTINCT analyst) AS analysts, ";
        $query.= "GROUP_CONCAT(DISTINCT region) AS regions, ";
        $query.= "GROUP_CONCAT(DISTINCT country) AS countries, ";
        $query.= "GROUP_CONCAT(DISTINCT topic) AS topics, ";
        $query.= "GROUP_CONCAT(DISTINCT date) AS dates, ";
        $query.= "GROUP_CONCAT(DISTINCT province) AS provinces ";
        $query.= "FROM reports GROUP BY report ORDER BY docID DESC ";

      $result = mysql_query($query);

  while($row=mysql_fetch_assoc($result)) { yada yada yada }

Я бы хотел, чтобы каждая отдельная строка $ сохранялась как уникальный массив, где я могу вызвать его где-нибудь еще в документе, в моем случае,Я пытаюсь назвать их как значения по умолчанию для некоторых входов формы.Я могу придумать несколько способов сделать это, но все они выглядят достаточно вовлеченными, добавляя несколько вложенных для утверждений и увеличивая i ...

Есть идеи?

Ответы [ 2 ]

3 голосов
/ 09 мая 2011

как насчет

$data = array()
while($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}

, который дает вам родительский массив $data, где каждый элемент в нем является одним из выбранных вами ассоциативных массивов.

2 голосов
/ 09 мая 2011

Каждая строка $ будет уникальной по содержанию, если каждая результирующая строка базы данных уникальна.Вставьте строки в массив с именем $ row следующим образом -

$rows = array();
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)) {
  $rows[] = $row;
  ...
}

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

...