我正在构建一个应用程序,用于存储有关不同类型产品的数据。 这是我的产品表的架构: -
------------------------------------------------------------------------------------
| id | product_name | price | details | category_id | phone_ram | bike_mileage |
------------------------------------------------------------------------------------
此处,id,product_name,price和details列适用于所有产品。但是' phone_ram'栏目仅适用于“电话”下的项目。类别和' bike_mileage'栏目适用于' bike'下的项目。类别。
以下是'类别'表: -
----------------------
| id | category_name |
----------------------
| 1 | phone |
----------------------
| 2 | bike |
----------------------
这是' category_data'存储任何类别的数据名称的表。
-----------------------------------
| id | category_id | name_of_data |
-----------------------------------
| 1 | 1 | phone_ram |
-----------------------------------
| 2 | 2 | bike_mileage |
-----------------------------------
现在,在我的查询中。首先,我将选择'产品'表适用于所有类型的数据。然后我会得到' category_id'从同一张表中的表格中检查' category_data'表,以查找从products表中获取的其他数据。然后我将再次根据产品表中的类别选择其他数据。 IE:' phone_ram'列,如果类别是'电话'。
我如何实现它?
答案 0 :(得分:1)
使用php:
<?php
session_start();
include 'db_connect.php';
$get_category = mysqli_query("SELECT * FROM category WHERE category_name = '$CategoryIn'");
if(mysqli_num_rows($get_category)==0){
//No result when looking for category
}
else {
//Select from the table
$category = mysqli_fetch_array($get_category);
$CategoryName = $category['category_name'];
$CategoryId = $category['id'];
//start selecting from the other table based on first query
$get_nameofdata = mysqli_query("SELECT * FROM category_data WHERE category_id = '$CategoryId'");
if(mysqli_num_rows($get_nameofdata)==0){
//No category data result.
}
else{
$cat_data = mysqli_fetch_array($get_nameofdata);
$NameOfData = $cat_data['name_of_data'];
}
//Your name_of_data result
echo $NameOfData;
}
匆忙写下来,希望它有所帮助。
另外,尝试在数据库中使用一些结构:)