mankee mankee - 3 months ago 7
PHP Question

Php Script empty response get data

I'm trying to fix up an old script which used to always work but now gives an empty response; I have no idea why. I have checked that the while loop is entered,

num_of_rows = 100
, yet I don't get any response.

<?php

$response = array();


$conn=mysqli_connect("localhost", "***", "***","***");


// get all gamelists from gamelists table
$result = mysqli_query($conn,"SELECT * FROM `abcd`");


// check for empty result
if (mysqli_num_rows($result) > 0) {


$response["gamelist"] = array();

while ($row = $result->fetch_array()) {
// temp user array

$gamelist = array();
$gamelist["id"] = $row["id"];
$gamelist["ques"] = $row["ques"];
$gamelist["odp_a"] = $row["odp_a"];
$gamelist["odp_b"] = $row["odp_b"];
$gamelist["odp_c"] = $row["odp_c"];
$gamelist["odp_d"] = $row["odp_d"];
$gamelist["comment"] = $row["comment"];
$gamelist["correctanswer"] = $row["correctanswer"];
$gamelist["commentfirst"] = $row["commentfirst"];





// push single gamelist into final response array

array_push($response["gamelist"], $gamelist);
}
// success
$response["success"] = 1;

// echoing JSON response
echo json_encode($response);
} else {
// no gamelists found
$response["success"] = 0;
$response["message"] = "No gamelists found";

// echo no users JSON
echo json_encode($response);
}
?>


enter image description here

Output :

1234444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444

Answer

Code seems to be working , but a better approach will be:-

<?php

$response = array();


$conn=mysqli_connect("localhost", "***", "***","***");

if($conn){
    // get all gamelists from gamelists table
    $result = mysqli_query($conn,"SELECT * FROM `abcd`");

    if($result){
        // check for empty result
        if (mysqli_num_rows($result) > 0) {
            while ($row = $result->fetch_array()) {
                $response["gamelist"][] = $row;
            }
            // success
            $response["success"] = 1;

            // echoing JSON response
            echo json_encode($response); exit;
        } else {
            // no gamelists found
            $response["success"] = 0;
            $response["message"] = "No gamelists found";

            // echo no users JSON
            echo json_encode($response);exit;
        }
    }else{
        echo "db query error".mysqli_error($conn); exit;
    }
}else{
    echo "db connection error".mysqli_connect_error(); exit;
}
?>

Since you said that it's something related to utf-8 issue.

This link is what you found useful:-

Why would json_encode returns an empty string

Comments