我有3個表,並試圖通過從每個表中放入一些特定數據來實現最終表。表如下:從3個不同的mysql表中選擇數據
一臺名爲tbl_category,這是如下:
+------+---------------+----------------+
| cid | category_name | category_image |
+------+---------------+----------------+
| 1 | cars | 1.jpg |
+------+---------------+----------------+
命名爲tbl_wallpaper第二個表是這樣的:
+------+---------------+----------------+-----------+
| id | cat_id | scat_name | image |
+------+---------------+----------------+-----------+
| 33 | 1 | blue cars | 001.png |
+------+---------------+----------------+-----------+
第三個表稱爲tbl_scategory它是這樣的:
+------+---------------+
| scid |scategory_name |
+------+---------------+
| 1 | blue cars |
+------+---------------+
客觀即時試圖到達是得到這樣的
"HD_WALLPAPER": [
{
"cid": "1",
"scat_name": "blue cars",
"category_name": "cars",
"category_image": "1.jpg",
"category_image_thumb": "001.png",
"total_wallpaper": "1"
},
意味着數據來自表tbl_category和tbl_wallpaper和tbl_scategory。我嘗試使用此代碼來獲得的總存儲在表tbl_scategory壁紙(tbl_category的子類)
IM,但它帶來的整個壁紙列
if(isset($_GET['cat_list']))
{
$jsonObj= array();
$cat_order=API_CAT_ORDER_BY;
$query="SELECT tbl_category.cid, tbl_category.category_name, tbl_category.category_image, tbl_scategory.scid, tbl_wallpaper.scat_name FROM tbl_category ,
tbl_scategory, tbl_wallpaper
ORDER BY tbl_category.".$cat_order."";
$sql = mysqli_query($mysqli,$query)or die(mysql_error());
while($data = mysqli_fetch_assoc($sql))
{
//Wallpaper count
$query_wall = "SELECT COUNT(*) as num FROM tbl_wallpaper WHERE scat_name='".$data['cid']."'";
$total_wall = mysqli_fetch_array(mysqli_query($mysqli,$query_wall));
$total_wall = $total_wall['num'];
$row['cid'] = $data['cid'];
$row['scat_name'] = $data['scat_name'];
$row['category_name'] = $data['category_name'];
$row['category_image'] = $file_path.'images/'.$data['category_image'];
$row['category_image_thumb'] = $file_path.'images/thumbs/'.$data['category_image'];
$row['total_wallpaper'] = $total_wall;
array_push($jsonObj,$row);
}
$set['HD_WALLPAPER'] = $jsonObj;
header('Content-Type: application/json; charset=utf-8');
echo $val= str_replace('\\/', '/', json_encode($set,JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
die();
}
我不知道是什麼問題
注:表中其它行我只是把這些部分顯示的例子
使用'JOIN'或'INNER JOIN'加入所有三個表,如果你有一個共同的關係。您還需要在** tbl_scategory **和其他表之間建立關係。 – Sand
使用連接並明確給出條件以獲得正確的結果 –
我試過連接但我無法達到結果,因爲它只有scat_name共同點,所以我被卡在即將與壁紙表加入的內容中。任何人都可以寫出這部分代碼。 –