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
यदि आप इस सरणी को जावास्क्रिप्ट में पास करने का प्रयास करते हैं, तो पहली पंक्ति के रूप में कॉलम नामों को जोड़ने की अनुमति देना उपयोगी है। विज़ुअलाइज़ेशन
.