我正在尝试返回用户名与数据库表中的用户名匹配的行数组。 JSON结果只给了我最后一行。
示例表:
james 14 u@aol.com
mah 12 j@aol.com
james 23 ra@yahoo.com
result gives me:
23 ra@yahoo.com
但我想要两个詹姆斯行不仅仅是最后一行。 所以14 u@aol.com和23 ra@yahoo.com 感谢
我的PHP代码:
<?php
$username = $_POST["username"];
$con = new mysqli("xx", "xx", "xx", "xx");
// selects everything
$statement = mysqli_prepare($con, "SELECT * FROM `user` WHERE username = ?");
mysqli_stmt_bind_param($statement, "s", $username);
mysqli_stmt_execute($statement);
// Store the result to use
mysqli_stmt_store_result($statement);
mysqli_stmt_bind_result($statement, $id, $username, $age, $email);
// Get results returned and put in array
$user = array();
while (mysqli_stmt_fetch($statement)) {
$user[age] = $age;
$user[email] = $email;
}
// Send array back to phone
print (json_encode($user));
mysqli_stmt_close($statement);
mysqli_close($con);
?>
答案 0 :(得分:1)
你的数组应该是空的,不像[age] [email]它应该为空,以便数组创建索引。
答案 1 :(得分:1)
你覆盖了数组,所以试试这样的
while (mysqli_stmt_fetch($statement)) {
$user[] = array( 'age'=>$age, 'email'=>$email);
}
答案 2 :(得分:1)
user[]
应该是一个二维数组。
在你的情况下,最后一个元素将在数组中。
while (mysqli_stmt_fetch($statement)) {
$user[] = array('age'=>$age,'email' =>$email);
}
希望这有帮助。