2015-03-03 38 views
1

目前,我正準備將AJAX響應提供給客戶端。在這種情況下(示例),我在數據庫中有兩個值爲tuper的值,但使用此代碼時,它僅打印1 tuper值行。JSON只有一行正在打印

下面是代碼:

<?php 
    $con=mysqli_connect("localhost","root","","project"); 

    $user = isset($_POST['user']) ? $_POST['user'] : ''; 
    $pass = isset($_POST['pass']) ? $_POST['pass'] : ''; 


    function account($user, $pass) 
    { 
    global $con; 
    $result=mysqli_query($con,"SELECT * FROM account WHERE username='$user'"); 
    while($row=mysqli_fetch_array($result)) 
    { 
     $x = array('Username'=> $row['username'], 
        'Password' => $row['password']); 

     $accounts['Accounts'][]= $x; 
     return json_encode($accounts); 
    } 

} 
echo $acountList = account("tuper",$pass); 

?> 
+0

你在'while'循環中返回*,這意味着它永遠不會循環多次。 – 2015-03-03 02:53:49

回答

3

刪除return while循環中。首先創建數組,然後將其返回。

function account($user, $pass) 
{ 
    global $con; 
    $data = array(); // setup container 
    $result = mysqli_query($con,"SELECT * FROM account WHERE username='$user'"); 
    while($row=mysqli_fetch_array($result)) { 
     $x = array(
      'Username'=> $row['username'], 
      'Password' => $row['password'] 
     ); 

     $data[] = $x; // push inside the container 
    } 

    $accounts['Accounts'] = $data; // after the loop is done 
    return json_encode($accounts); // then return it 
}