Ahmed Bakir
Ahmed Bakir

Reputation: 59

Return PHP MySQL select as json

So I have a SQL database with a number of objects in that contain name price and images, I would like to know how I can select them using php and output the result into json

<?php
$db = mysqli_connect ('localhost', 'root', '', 'car_rental') or die  ("SQL is Off");


$car = (isset($_GET['car']) ? $_GET['car'] : null);

mysqli_select_db($db,"car_rental");


$SQL = "SELECT * FROM `products` WHERE name LIKE \'%$car%\'";
$result = mysql_query($SQL);

while ( $db_field = mysql_fetch_assoc($result) ) {

print $db_field['sku'] . "<BR>";
print $db_field['name'] . "<BR>";
print $db_field['img'] . "<BR>";
print $db_field['price'] . "<BR>";

}

?>

This is my current code car variable will change dependent on car selected thanks

Upvotes: 0

Views: 6802

Answers (1)

devpro
devpro

Reputation: 16117

For getting all values in json format, you need to use like that:

<?
$newArr = array();
while ( $db_field = mysql_fetch_assoc($result) ) {
    $newArr[] = $db_field;
}
echo json_encode($newArr); // get all products in json format.
?>

UPDATE 1:

You are mixing mysqli extension with mysql. Change mysql into mysqli


UPDATE 2:

Why are you connecting database twice in code?

Modified Code:

<?php

$link = mysqli_connect("localhost", "root", "", "car_rental");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

$car = (isset($_GET['car']) ? $_GET['car'] : null);

$query = "SELECT * FROM `products` WHERE name LIKE '%$car%'";

if ($result = mysqli_query($link, $query)) {

    $newArr = array();
    /* fetch associative array */
    while ($db_field = mysqli_fetch_assoc($result)) {
        $newArr[] = $db_field;
    }
    echo json_encode($newArr); // get all products in json format.    
}

?>

Side Note:

Also on PHP error reporting in development phase for saving your time.

Upvotes: 6

Related Questions