2015-09-27 44 views
1

当我使用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"); 

回答

0

你是显式创建一个数组来处理只有一个r ow在你的main.php中

你需要用while()(例如)循环遍历结果来构建包含多行的数组。

但是,查询看起来像它只带来一条记录......或者有更多的1名学生使用相同的电子邮件?

+0

该查询对我的目的是正确的,因为我测试了它,并且它给了我3行,但我不知道该如何做一段时间() –

+0

mysql_fetch_array()带来了一行并将指针移动到了下一个... so like something 'while($ row = mysql_fetch_array($ result,MYSQL_NUM)){ printf(“ID:%s Name:%s”,$ row [0],$ row [1]) ; }' –

+0

它不工作:( –