sql >> Database >  >> RDS >> Mysql

hoe een mysql-select terug te geven als een array van arrays in json met behulp van php

Voor json_encode om een ​​JSON-array of array te retourneren, hebt u een numeriek geïndexeerde array nodig.

Dit kan worden verkregen met de volgende, generieke functie:

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

Gebruikt zoals in het volgende:

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

Waar jsTable in feite een reeks arrays zal zijn. Let op de optie withNames toestaan ​​om de kolomnamen als de eerste rij toe te voegen, handig als u deze array doorgeeft aan javascript voor google visualisatie .




  1. Een formulier met 50 velden indienen bij meerdere tabellen; reguliere POST, AJAX POST of iets anders?

  2. Meerdere indexen versus indexen met meerdere kolommen

  3. Hoe gebruik ik CREATE OR REPLACE?

  4. mysql_real_escape_string() in .NET Framework