$ response JSON只返回1行,PHP,ANDROID

时间:2015-09-27 10:10:56

标签: php android mysql json

当我使用json_encode($response)时,它只返回查询的第一行,如何让它返回所有行?

$email = $_POST['email'];
$password = $_POST['password'];

main.php

// check for user
$user = $db->getUserByEmailAndPassword($email, $password);
if ($user != false ) {
    // user found
    $response["error"] = FALSE;
    $response["user"]["name"] = $user["name"];
    $response["user"]["email"] = $user["email"];
    $response["user"]["dega"] = $user["dega"];
    $response["user"]["salla"] = $user["salla"];
    $response["user"]["ora"] = $user["ora"];
    $response["user"]["lenda"] = $user["lenda"];
    $response["user"]["dita"] = $user["dita"];
    echo json_encode($response);
}

method.php

public function getUserByEmailAndPassword($email, $password) {
    $result = mysql_query("SELECT U.name, U.email, U.password, F.dega, 
        O.salla, O.ora, O.lenda, O.dita FROM users U 
         INNER JOIN fakulteti F on U.id = F.studenti 
           INNER JOIN orari O on F.id = O.fakulteti WHERE email = '$email'")  or die(mysql_error());

    $no_of_rows = mysql_num_rows($result);
    if ($no_of_rows > 0) {
        $result = mysql_fetch_array($result);
        $encrypted_password = $result['password']
        if ($encrypted_password == $password) {
            return $result;
        }
    }
}

Android类,这就是我在android上收到回复的方式:

JSONObject user = jObj.getJSONObject("user");
String name = user.getString("name");
String email = user.getString("email");
String dega = user.getString("dega");
String salla = user.getString("salla");
String ora = user.getString("ora");
String lenda = user.getString("lenda");
String dita = user.getString("dita");

1 个答案:

答案 0 :(得分:0)

您正在显式创建一个数组,以便只处理main.php中的一行

您需要使用while()(例如)循环遍历结果,以构建具有多行的数组。

但查询看起来似乎只带来一条记录......或者有超过一名学生使用相同的电子邮件?