简体   繁体   中英

getting data from database as a json response

Here I am trying to get some data from database and want to display it as a json response so that user can fetch each field.

Here is how user can perform query

http://localhost/safari/index.php?getbranch=true

this should give branch details from tables.

Here is PHP code to do it

<?php
    if(isset($_GET['getbranch']))
    {
        $getbranch = $_GET['getbranch'];
        if($getbranch == 'true')
        {
            getbranch($getbranch);
        }
    }
    function getbranch($getbranch)
    {
        $con = mysqli_connect('127.0.0.1', 'root', '', 'safari');
        if (mysqli_connect_errno())
        {
            echo "Failed to connect to MySQL: " . mysqli_connect_error();
            return;
        }   
        $today = date("Ymd");           

        $result = mysqli_query($con,"SELECT division, branch,branchofficename,branchofficecode,status from tbl_branchoffice");
        while ($row = @mysqli_fetch_array($result))
        {
            $result1 = json_encode($row);             
        }
        echo $result1;
    }

What's wrong wit this?

JSON response:

[{"0":"3","sno":"3","1":"2","division":"2","2":"2","branch":"2","3":"SAFFARI TRAVELS","branchofficename":"SAFFARI TRAVELS","4":"gfgbhghfhf","branchofficecode":"gfgbhghfhf","5":"active","status":"active"},

{"0":"4","sno":"4","1":"2","division":"2","2":"chennai","branch":"chennai","3":"chennai","branchofficename":"chennai","4":"br01","branchofficecode":"br01","5":"active","status":"active"},{"0":"5","sno":"5","1":"3","division":"3","2":"delhi","branch":"delhi","3":"delhi","branchofficename":"delhi","4":"br02","branchofficecode":"br02","5":"notactive","status":"notactive"},{"0":"6","sno":"6","1":"2","division":"2","2":"bangalore","branch":"bangalore","3":"bangalore","branchofficename":"bangalore","4":"br03","branchofficecode":"br03","5":"active","status":"active"},{"0":"7","sno":"7","1":"3","division":"3","2":"pune","branch":"pune","3":"pune","branchofficename":"pune","4":"br04","branchofficecode":"br04","5":"notactive","status":"notactive"}]

$result1 = array();
if(isset($_GET['getbranch']))
{
    $getbranch = $_GET['getbranch'];
    if($getbranch == 'true')
    {
        getbranch($getbranch);
    }
}
function getbranch($getbranch)
{
    $con = mysqli_connect('127.0.0.1', 'root', '', 'safari');
    if (mysqli_connect_errno())
    {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
        return;
    }   
    $today = date("Ymd");           

    $result = mysqli_query($con,"SELECT division,  
    branch,branchofficename,branchofficecode,status from tbl_branchoffice");
    while ($row = @mysqli_fetch_array($result))
    {
        $result1[] = $row;             
    }
    echo json_encode($result1);
}

First collect each row from the result into the array result1 and then finally output the json_encode of $result1 array

Change your while loop

$result1 = array();
while ($row = @mysqli_fetch_array($result))
{    
       array_push($result1 , $row);           
 }

by doing so, you have collected all result in $result1

now you can encode it

echo  $result1 = json_encode( $result1);  

I will prefer to use array , ignor json_encode line code,

foreach($result1 as $resultset){
 //resultset contains one single row of table
    foreach($resultset as $column => $columnValue){
  //assuming your table column name as 'city'
        if($column == 'city' && $columnValue == 'pune' ){
         //displaying array of table which satisfies the condition
             var_dump($resultset );

        }
    }
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM