从数据库表android获取行

时间:2015-11-21 06:48:02

标签: php android mysql json

我正在尝试返回用户名与数据库表中的用户名匹配的行数组。 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);

?>

3 个答案:

答案 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);
    }

希望这有帮助。