2016-01-20 61 views
0

所以我有在包含名稱價格和圖像的多個對象的SQL數據庫,我想知道我可以使用PHP,並將結果輸出到JSON選擇它們返回PHP MySQL的選擇爲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>"; 

} 

?> 

這是我當前的代碼car變量將改變依賴汽車選擇 感謝

+0

'json_encode($ db_field);'。 –

+0

我是否需要回顯或打印任何其他的db_fields? –

+0

回覆json_encode($ db_field); exit;' –

回答

1

爲了得到JSON格式的所有值,你需要使用這樣的:

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

更新1:

你混合mysqli擴展與mysql。更改mysqlmysqli


更新2:

你爲什麼用代碼連接數據庫兩次?

修改代碼:

<?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.  
} 

?> 

側面說明:

而且在開發階段PHP error reporting爲節省您的時間。

+0

獲取以下錯誤警告:mysql_fetch_assoc()期望參數1爲資源,在第13行的C:\ xampp \ htdocs \ db \ search.php中給出的布爾值 false –

+0

@ AhmedBakir:我已經改變了這個變量,現在就試試。 – devpro

+0

仍然是相同的錯誤 –