У меня есть этот код php:
public function getcabang(){ $cabang = $this->conn->prepare("SELECT nama_cabang,alamat FROM cabang"); if ($cabang->execute()){ $cbg = $cabang->get_result()->fetch_assoc(); $cabang->close(); return $cbg; } else { return NULL; } }
но он всегда возвращает 1 строку:
{"error":false,"cabang":{"nama_cabang":"Senayan","alamat":"Pintu 1 Senayan"}}
хотя он имеет более 1 строки в таблице
Вам нужно итерации, чтобы получить каждую строку, вот пример из php.net :
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5"; if ($result = $mysqli->query($query)) { /* fetch associative array */ while ($row = $result->fetch_assoc()) { printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]); } /* free result set */ $result->free(); }
В вашем случае это будет:
public function getcabang(){ $cabang = $this->conn->prepare("SELECT nama_cabang,alamat FROM cabang"); if ($cabang->execute()){ $cbg = array(); $result = $cabang->get_result(); while($row = $result->fetch_assoc()) { $cbg[] = $row; } $cabang->close(); return $cbg; } else { return NULL; } }
Кроме того, лучшим решением может быть использование mysqli_fetch_all (доступно только с mysqlnd)