Я пытаюсь использовать json_encode()
в цикле while, получая результаты базы данных. Вот мой код:
<? $database = sqlite_open("thenew.db", 0999, $error); if(!$database) die($error); $query = "SELECT * FROM users"; $results = sqlite_query($database, $query); if(!$results) die("Canot execute query"); while($row = sqlite_fetch_array($results)) { $data = $row['uid'] . " " . $row['username'] . " " . $row['xPos'] . " " . $row['yPos']; } echo json_encode(array("response"=>$data)); sqlite_close($database); ?>
Результатом этого является
{"response": "lastUserID lastUser lastXPos lastYPos"}
Я хочу, чтобы это было …
{"response": ["1 Alex 10 12", "2 Fred 27 59", "3 Tom 47 19"]}
и т.п.
Поэтому я хочу, чтобы функция json_encode()
помещала ВСЕ пользователей в массив, а не последнюю. Как мне это сделать? благодаря
Пытаться:
<? $database = sqlite_open("thenew.db", 0999, $error); if(!$database) die($error); $query = "SELECT * FROM users"; $results = sqlite_query($database, $query); if(!$results) die("Canot execute query"); $data = array(); while($row = sqlite_fetch_array($results)) { $data[] = $row['uid'] . " " . $row['username'] . " " . $row['xPos'] . " " . $row['yPos']; } echo json_encode(array("response"=>$data)); sqlite_close($database); ?>
Изменить это
while($row = sqlite_fetch_array($results)) { $data = $row['uid'] . " " . $row['username'] . " " . $row['xPos'] . " " . $row['yPos']; }
в
$data = array(); while($row = sqlite_fetch_array($results)) { $data[] = $row['uid'] . " " . $row['username'] . " " . $row['xPos'] . " " . $row['yPos']; }
Нажимайте каждый пользователь на массив:
$data = array(); while($row = sqlite_fetch_array($results)) { $data[] = $row['uid'] . " " . $row['username'] . " " . $row['xPos'] . " " . $row['yPos']; } echo json_encode(array("response"=>$data));