Mysql
 sql >> база данни >  >> RDS >> Mysql

как да върнете избран mysql като масив от масиви в json с помощта на php

За json_encode за да върнете JSON масив от масив, имате нужда от числово индексиран масив.

Това може да се получи със следната обща функция:

    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);
    }

Използва се както в следното:

    <?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();
    ?>

Където jsTable ефективно ще бъде масив от масиви. Обърнете внимание на опцията withNames позволявайки добавянето на имената на колоните като първи ред, полезно, ако се опитате да предадете този масив на javascript за google визуализация .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Проектиране на база данни:система за инвентаризация и продажби?

  2. Atomic MySQL транзакции в Anorm

  3. Производителност за търсене в 100 милиона записа

  4. Пример за връзка с JavaFX MySQL, моля

  5. Сложна MySQL заявка