2016-01-25 4 views
0

Я пытаюсь получить этот вывод из базы данных стран. я имел использовать функцию mysqli_fetch_object(), но она не работает со мнойJSON Массив объектов с MySql

"countries":[{"countryname":"India","flag":"http:\/\/wptrafficanalyzer.in\/p\/demo1\/india.png","language":"Hindi","capital":"New Delhi","currency":{"code":"INR","currencyname":"Rupee"}},{"countryname":"Pakistan","flag":"http:\/\/wptrafficanalyzer.in\/p\/demo1\/pakistan.png","language":"Urdu","capital":"Islamabad","currency":{"code":"PKR","currencyname":"Pakistani Rupee"}}]} 

и я использую этот скрипт

<?php 
require 'config.php'; 
$con=mysqli_connect($servername,$username,$password,$db); 
    if(!$con) 
{ 
die ("Erro in connection" . mysqli_connect_error); 

} 
else{  $encode = array(); 



$sql="select * from country "; 
    $res=mysqli_query($con,$sql); 

    if(mysqli_num_rows($res)>0) 
    { 

     $temp_array=array(); 
     while($row=mysqli_fetch_object($res)) 
     { 

      //$temp_array[]=$row; 
      $encode=$row; 


     } 

     //echo json_encode($temp_array); 
     echo json_encode($encode); 

    } 

    else 
    { 
    echo " 0 Rows"; 
    } 
} 


?> 

если кто-нибудь может мне помочь?

ответ

0

Ваш код должен быть чем-то вроде ниже;

<?PHP 
    require 'config.php'; 
    $con=mysqli_connect($servername,$username,$password,$db); 
    if(!$con) 
     die ("Error in connection" . mysqli_connect_error); 
    else{ 
     $encode = array(); 

     $sql = "select * from country "; 
     $res = mysqli_query($con,$sql); 
     if(mysqli_num_rows($res)>0) 
     { 

      $temp_array=array(); 
      while($row=mysqli_fetch_object($res)) 
      { 
       $encode[]=$row; 
      } 
     } 
     echo json_encode($encode); 
    } 
?> 

Вам не нужно записать 0 строк, потому что вы возвращаете объект JSON, который имеет массив так, когда вы проверяете result.length он говорит вам количество строк.

В качестве совета вы можете использовать что-то вроде ниже;

<?php 
    require 'config.php'; 
    $con = mysqli_connect($servername,$username,$password,$db); 
    $resultArray = array(); 
    $resultArray["error"] = true; //That will tell your javascript client if any error exits. 
    $resultArray["errorMessage"] = ""; //We will set this value if any error exits; 
    if(!$con) 
    { 
     $resultArray["error"] = true; 
     $resultArray["errorMessage"] = "Error in connection" . mysqli_connect_error(); 
    } 
    else{ 
     $resultArray["error"] = false; 
     $itemCollection = array(); 

     $sql = "select * from country "; 
     $res = mysqli_query($con,$sql); 
     if(mysqli_num_rows($res)>0) 
      while($row = mysqli_fetch_object($res)) 
       $itemCollection[]=$row; 

     $resultArray["itemCollection"] = $itemCollection; 
    } 

    echo json_encode($resultArray); 
?> 

В моем примере вы получите результат json, как показано ниже;

{"error":true,"errorMessage":"ErrorMessageIfExists","itemCollection":[yourObject,yourObject]} 

Надеюсь, это вам поможет.

Смежные вопросы