#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;
...
}
Если вы говорите об именовании каждой строки уникальной переменной, есть вещи, которые вы могли бы сделать, но тогда вам придется пытаться вычислить непредсказуемые имена переменных, поэтому я надеюсь, что это НЕ то, что вы имеете в виду 🙂