Mysql
 sql >> Baza danych >  >> RDS >> Mysql

jak zwrócić mysql select jako tablicę tablic w json za pomocą php

Dla json_encode aby zwrócić tablicę JSON z tablicą, potrzebujesz tablicy indeksowanej numerycznie.

Można to uzyskać za pomocą następującej, ogólnej funkcji:

    function SqlSelectToJsonTable($result,$withNames=false){
        // result a mysqli::query object, 
        // withNames: boolean, should the column names be returned as first row
        $return_arr = array();
        echo $result->num_rows;
        if ($result->num_rows > 0){
            if($withNames == true){
                $return_arr[0] = array();
                $fields = $result->fetch_fields();
                foreach ($fields as $field){
                    echo "column: ".$field->name." ";
                    array_push($return_arr[0],$field->name);
                }
            }
            while($row = $result->fetch_assoc()) {
                $return_arr[]= array_values($row);
            }
        } else {
            echo "0 results";
        }
        return json_encode($return_arr);
    }

Używany w następujący sposób:

    <?php
    $servername = "localhost";
    $username = "user";
    $password = "password";
    $dbname = "test";

    // Create connection
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    } 

    $sql = "SELECT id, title FROM Posts";
    $result = $conn->query($sql);

    $jsonTable = SqlSelectToJsonTable($result);
    echo '<br/>'.$jsonTable;

    echo "<script type=\"text/javascript\">
        var jsTable = JSON.parse('".$jsonTable."');
        </script>";

    $conn->close();
    ?>

Gdzie jsTable będzie efektywnie tablicą tablic. Zwróć uwagę na opcję withNames umożliwienie dodania nazw kolumn jako pierwszego wiersza, przydatne, jeśli spróbujesz przekazać tę tablicę do javascript dla google wizualizacja .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Podsumuj wszystkie liczby wierszy w tabeli w jednym zapytaniu

  2. mysql_ping zawiesza się z Amazon RDS

  3. Porównanie kolumn Data tabeli z wygenerowaną listą dat - MYSQL

  4. php mysql - czy powinienem dodać pole nazwa-kategorii do tabeli, czy nie?

  5. Jak wykonać zapytanie o pola zawierające dany tekst w MySQL?