У меня небольшая проблема с моей связанной с mysqli функцией. Вот код:
$query = "SELECT * FROM uploads"; if ($result = $mysqli->query($query)) { while ($row = $result->fetch_assoc()) { return $row; }
Проблема в том, что когда я использую эту функцию, $row
представляется массивом, но только с первым значением результата запроса. Но если я попытаюсь return var_dump($row)
, функция отобразит массив, как ожидалось, со всеми значениями из результата запроса. Не могли бы вы объяснить, почему это происходит и как правильно вернуть массив с полным результатом запроса. Благодаря!
$data = array(); $query = "SELECT * FROM uploads"; if ($result = $mysqli->query($query)) { while ($row = $result->fetch_assoc()) { $data[] = $row; } } return $data;
Измените это:
while ($row = $result->fetch_assoc()) { return $row; }
Для:
function test(){ $query = "SELECT * FROM uploads"; if ($result = $mysqli->query($query)) { while ($row = $result->fetch_assoc()) { $data[]=$row; } }else{ $data=array(); } return $data; }
Функция проверки вызова
$bbb=test(); foreach($bbb as $key){ $dbTableColumn1 = $key['column1']; $dbTableColumn2 = $key['column2']; $dbTableColumn3 = $key['column3']; //...$variable = $key['ColumnOfYourTable']; $text .= $dbTableColumn1.'|'.$dbTableColumn2.'|'.$dbTableColumn3.'<br/>'; //Whatever you want to output }
Функция предназначена только для того, чтобы сделать более читаемым