PHP json_encode () в цикле - PullRequest
       2

PHP json_encode () в цикле

0 голосов
/ 06 августа 2011

Я пытаюсь использовать 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"}

Iхочу, чтобы это было ...

{"response": ["1 Alex 10 12", "2 Fred 27 59", "3 Tom 47 19"]}

и т. Д.

Поэтому я хочу, чтобы функция json_encode() помещала ВСЕХ пользователей в массив, а не последнего.Как бы я это сделал?Спасибо

Ответы [ 3 ]

4 голосов
/ 06 августа 2011

Попробуйте:

<?

$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);

?>
3 голосов
/ 06 августа 2011

Измените это

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'];
}
2 голосов
/ 06 августа 2011

Push каждого пользователя в массив:

$data = array();
while($row = sqlite_fetch_array($results)) {
  $data[] = $row['uid'] . " " . $row['username'] . " " . $row['xPos'] . " " . $row['yPos'];
}
echo json_encode(array("response"=>$data));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...