2017-03-10 81 views
0

我使用下面的代碼PHP數組編碼的JsonPHP的mysql_fetch_assoc以JSON編碼

$query = "SELECT * FROM register WHERE email='$email'AND password='$password'AND status!='0'"; 

     $result = mysql_query($query) or die('Errant query: ' . $query); 
     $numResults = mysql_num_rows($result); 
     if ($numResults > 0) 
     { 
      $data = array(); 
      while ($row = mysql_fetch_assoc($result)) 
      { 
       $data = $row; 

      } 
     echo json_encode($data); 
    } 

它給我造成像

{"id":"26","fname":"Shankar","lname":"Salunkhe","category_name":"2"} 

,但我想導致像

{"SignIn":[{"id":"26","fname":"Shankar","lname":"Salunkhe","category_name":"2"}],"errors":[],"totalNumberOfRecords":1,"responseCode":"00000"} 

我該怎麼辦

或建議我使用任何其他方法來做到這一點

+0

添加必需的鑰匙你的'$ data'陣列 –

+0

並停止使用mysql_ *擴展; http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – hassan

+1

不使用'mysql',它已被棄用,並在PHP7中刪除,使用'mysqli'或'PDO '。 **永遠不會永遠**存儲純文本密碼!使用'password_hash()'和'password_verify()',並使用參數化語句來保護您的代碼免受** SQL注入攻擊**。 –

回答

0

你需要做下面的事情來獲得所需的輸出。

$query = "SELECT * FROM register WHERE email='$email'AND password='$password'AND status!='0'"; 

     $result = mysql_query($query) or die('Errant query: ' . $query); 
     $numResults = mysql_num_rows($result); 
     if ($numResults > 0) 
     { 
      $data = array(); 
      while ($row = mysql_fetch_assoc($result)) 
      { 
       $data[] = $row; 
      } 
     $result = ['SignIn' => $data, 'totalNumberOfRecords' => $numResults, 'errors' => [], 'responseCode' => 0000]; 
     echo json_encode($result); 
     exit; 
    } 
0

你必須將所有信息存儲在一個數組中才能得到你想要的。 例如,

$data = array("id" =>"26","fname"=>"Shankar","lname"=>"Salunkhe","category_name"=>"2"); 

$array = array("SignIn" => $data, "errors" => [], "totalNumberOfRecords" => 1,"responseCode" => "00000"); 

$result = json_encode($array);