sql >> Database teknologi >  >> RDS >> Mysql

hvordan man returnerer en mysql select som en række arrays i json ved hjælp af php

Til json_encode for at returnere et JSON-array af array skal du bruge et numerisk indekseret array.

Dette kan opnås med følgende generiske funktion:

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

Brugt som i følgende:

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

Hvor jsTable effektivt vil være et array af arrays. Bemærk muligheden withNames giver mulighed for at tilføje kolonnenavne som den første række, nyttigt, hvis du prøver at overføre dette array til javascript for google visualisering .




  1. Hent poster fra én tabel, hvor der ikke er en post i en anden

  2. Hvordan integrerer man ElasticSearch med MySQL?

  3. Sådan får du kalenderkvartal fra en dato i TSQL

  4. Mysql vælger tælleværdier fra en enkelt kolonne