Какой самый простой способ присвоить каждому отдельному результату запроса MySQL уникальный массив?

#php #mysql #arrays #unique

#php #mysql #массивы #уникальный

Вопрос:

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

      $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 }
  

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

Есть идеи?

Ответ №1:

как насчет

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

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

Ответ №2:

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

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

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