복붙노트

JSON 인코딩 결과

PHP

JSON 인코딩 결과

MySQL 쿼리 결과에 json_encode () 함수를 사용하려면 어떻게해야합니까? 행을 반복해야합니까, 아니면 전체 결과 개체에 적용 할 수 있습니까?

해결법

  1. ==============================

    1.

    $sth = mysqli_query("SELECT ...");
    $rows = array();
    while($r = mysqli_fetch_assoc($sth)) {
        $rows[] = $r;
    }
    print json_encode($rows);
    

    json_encode 함수는 PHP> = 5.2와 php-json 패키지가 필요합니다.

    참고 : mysql은 PHP 5.5.0부터 사용되지 않습니다. http://php.net/manual/en/migration55.deprecated.php 대신 mysqli 확장을 사용하십시오.

  2. ==============================

    2.

    이것을 시도하면, 이것은 당신의 객체를 적절히 생성 할 것입니다.

     $result = mysql_query("SELECT ...");
     $rows = array();
       while($r = mysql_fetch_assoc($result)) {
         $rows['object_name'][] = $r;
       }
    
     print json_encode($rows);
    
  3. ==============================

    3.

    http://www.php.net/mysql_query는 "mysql_query ()가 리소스를 반환합니다"라고 말합니다.

    http://www.php.net/json_encode는 "자원을 제외한"모든 값을 인코딩 할 수 있다고 말합니다.

    배열을 반복하고 데이터베이스 결과를 수집 한 다음 배열을 json_encode해야합니다.

  4. ==============================

    4.

    고마워 이것이 나에게 많은 도움이되었다. 내 코드 :

    $sqldata = mysql_query("SELECT * FROM `$table`");
    
    $rows = array();
    while($r = mysql_fetch_assoc($sqldata)) {
      $rows[] = $r;
    }
    
    echo json_encode($rows);
    
  5. ==============================

    5.

    고마워. 내 대답은 다음과 같다.

    if ($result->num_rows > 0) {
                # code...
                $arr = [];
                $inc = 0;
                while ($row = $result->fetch_assoc()) {
                    # code...
                    $jsonArrayObject = (array('lat' => $row["lat"], 'lon' => $row["lon"], 'addr' => $row["address"]));
                    $arr[$inc] = $jsonArrayObject;
                    $inc++;
                }
                $json_array = json_encode($arr);
                echo $json_array;
            }
            else{
                echo "0 results";
            }
    
  6. ==============================

    6.

    위의 내용은 내 경험상 루트 요소의 이름을 지정하기 전에는 작동하지 않습니다. 배열에서 뭔가에 액세스 할 수 없었습니다. 그 전에 최종 json.

    $sth = mysql_query("SELECT ...");
    $rows = array();
    while($r = mysql_fetch_assoc($sth)) {
        $rows['root_name'] = $r;
    }
    print json_encode($rows);
    

    그 트릭을해야합니다!

  7. ==============================

    7.

    아래 코드는 여기에서 잘 작동합니다!

    <?php
    
      $con=mysqli_connect("localhost",$username,$password,databaseName);
    
      // Check connection
      if (mysqli_connect_errno())
      {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    
      $query = "the query here";
    
      $result = mysqli_query($con,$query);
    
      $rows = array();
      while($r = mysqli_fetch_array($result)) {
        $rows[] = $r;
      }
      echo json_encode($rows);
    
      mysqli_close($con);
    ?>
    
  8. ==============================

    8.

    내 간단한 수정은 숫자 값 주위에 연설 표시를 그만 두는 ...

    while($r = mysql_fetch_assoc($rs)){
        while($elm=each($r))
        {
            if(is_numeric($r[$elm["key"]])){
                        $r[$elm["key"]]=intval($r[$elm["key"]]);
            }
        }
        $rows[] = $r;
    }   
    
  9. ==============================

    9.

    죄송합니다. 문제가 발생한 후에 매우 오래되었습니다.

    $sql = 'SELECT CONCAT("[", GROUP_CONCAT(CONCAT("{username:'",username,"'"), CONCAT(",email:'",email),"'}")), "]") 
    AS json 
    FROM users;'
    $msl = mysql_query($sql)
    print($msl["json"]);
    

    그냥 기본적으로 :

    "SELECT" Select the rows    
    "CONCAT" Returns the string that results from concatenating (joining) all the arguments
    "GROUP_CONCAT" Returns a string with concatenated non-NULL value from a group
    
  10. ==============================

    10.

    우리는이 같은 Paolo Bergantino 대답을 단순화 할 수 있습니다.

    $sth = mysql_query("SELECT ...");
    print json_encode(mysql_fetch_assoc($sth));
    
  11. ==============================

    11.

    MySQL 데이터베이스의 데이터를 사용하여 JSON을 작성하는 방법

    JSON (JavaScript Object Notation)은 요즘보다 가볍고 읽기 쉽고 다양한 플랫폼에서 데이터를 쉽게 관리 할 수있어 XML보다 선호됩니다. MySQL 데이터베이스에 저장된 Employee 테이블에서 JSON 데이터를 생성하는 방법을 살펴 보겠습니다.

     echo json_encode($data);
    

    라이브 : [예]

  12. ==============================

    12.

    <?php
    define('HOST','localhost');
    define('USER','root');
    define('PASS','');
    define('DB','dishant');
    
    $con = mysqli_connect(HOST,USER,PASS,DB);
    
    
      if (mysqli_connect_errno())
      {
       echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    
     $sql = "select * from demo ";
    
     $sth = mysqli_query($con,$sql);
    
    $rows = array();
    
    while($r = mysqli_fetch_array($sth,MYSQL_ASSOC)) {
    
     $row_array['id'] = $r;
    
        **array_push($rows,$row_array);**
    }
    echo json_encode($rows);
    
    mysqli_close($con);
    ?>
    

    aarray_push ($ rows, $ row_array); 그렇지 않으면 그것은 while 루프에서 마지막 값을 준다.

    java에서 StringBuilder 메서드를 추가하는 것과 같은이 작업

  13. ==============================

    13.

    FOR 루프를 사용하는 또 다른 옵션 :

     $sth = mysql_query("SELECT ...");
     for($rows = array(); $row = mysql_fetch_assoc($sth); $rows[] = $row);
     print json_encode($rows);
    

    유일한 단점은 루프가 예를 들어 느린 것입니다. 또는 특히 foreach

  14. ==============================

    14.

    예를 들어 $ result = mysql_query ( "SELECT * FROM userprofiles where NAME = 'TESTUSER'");

    1) $ result가 하나의 행이면.

    $response = mysql_fetch_array($result);
    echo json_encode($response);
    

    2.) $ result가 둘 이상의 행이면. 행을 반복하여 배열에 저장하고 배열에 json을 반환해야합니다.

    $rows = array();
    if (mysql_num_rows($result) > 0) {
        while($r = mysql_fetch_assoc($result)) {
           $id = $r["USERID"];   //a column name (ex.ID) used to get a value of the single row at at time
           $rows[$id] = $r; //save the fetched row and add it to the array.
        }
    }    
    echo json_encode($rows);
    
  15. ==============================

    15.

    나는 이것처럼 풀었다.

    $ stmt-> bind_result ($ cde, $ v_off, $ em_nm, $ q_id, $ v_m); $ list = array (); $ i = 0; while ($ cresult = $ stmt-> fetch ()) { $ list [$ i] [0] = $ cde; $ list [$ i] [1] = $ v_off; $ list [$ i] [2] = $ em_nm; $ list [$ i] [3] = $ q_id; $ list [$ i] [4] = $ v_m; $ i = $ i + 1; } echo json_encode ($ list); 결과 세트로 아약스에 반환됩니다. 그리고 json parse를 javascript 부분에서 다음과 같이 사용합니다 :

    obj = JSON.parse (dataX);

  16. ==============================

    16.

    나는 같은 요구 사항을 가지고있다. JSON 형식으로 결과 개체를 인쇄하므로 아래 코드를 사용합니다. 당신이 뭔가를 찾길 바랍니다.

    // Code of Conversion
    $query = "SELECT * FROM products;";
    $result = mysqli_query($conn , $query);
    
    if ($result) {
    echo "</br>"."Results Found";
    
    // Conversion of result object into JSON format
    $rows = array();
    while($temp = mysqli_fetch_assoc($result)) {
        $rows[] = $temp;
    }
    echo "</br>" . json_encode($rows);
    
    } else {
        echo "No Results Found";
    }
    
  17. ==============================

    17.

    암호:

    $rows = array();
    
    while($r = mysqli_fetch_array($result,MYSQL_ASSOC)) {
    
     $row_array['result'] = $r;
    
      array_push($rows,$row_array); // here we push every iteration to an array otherwise you will get only last iteration value
    }
    
    echo json_encode($rows);
    
  18. ==============================

    18.

    $rows = json_decode($mysql_result,true);
    

    저것과 같이 쉬운 :-)

  19. ==============================

    19.

    $array = array();
    $subArray=array();
    $sql_results = mysql_query('SELECT * FROM `location`');
    
    while($row = mysql_fetch_array($sql_results))
    {
        $subArray[location_id]=$row['location'];  //location_id is key and $row['location'] is value which come fron database.
        $subArray[x]=$row['x'];
        $subArray[y]=$row['y'];
    
    
     $array[] =  $subArray ;
    }
    echo'{"ProductsData":'.json_encode($array).'}';
    
  20. ==============================

    20.

    아래의 코드에서 mysql_fetch와 json_encode를 확인하십시오. 행을 반복해야하지만 mysqli를 사용하면 상황이 바뀔 것이다.

    $kt_query="SELECT * FROM tbl_xxx";
    $kt_result = mysql_query($kt_query) or die('Query failed: ' . mysql_error());
    $rows= array();
    while($sonuc=mysql_fetch_assoc($kt_result))
    {
        $rows[]=$sonuc;
    }
    print json_encode($rows);
    
  21. from https://stackoverflow.com/questions/383631/json-encode-mysql-results by cc-by-sa and MIT lisence