使用另一个 table 的数据从 table 中选择数据
Selecting data from table using another table's data
我正在构建一个应用程序来存储不同类型产品的数据。
这是我的产品的架构 table:-
------------------------------------------------------------------------------------
| id | product_name | price | details | category_id | phone_ram | bike_mileage |
------------------------------------------------------------------------------------
此处id、product_name、price、details栏目适用于所有商品。但是 'phone_ram' 栏仅适用于 'phone' 类别下的项目,而 'bike_mileage' 栏适用于 'bike' 类别下的项目。
这里是 'category' table:-
----------------------
| id | category_name |
----------------------
| 1 | phone |
----------------------
| 2 | bike |
----------------------
这里是'category_data' table,它存储了任何类别的数据名称。
-----------------------------------
| id | category_id | name_of_data |
-----------------------------------
| 1 | 1 | phone_ram |
-----------------------------------
| 2 | 2 | bike_mileage |
-----------------------------------
现在,在我的查询中。首先,我将 select 'products' table 中适用于所有类型数据的列。然后我将从完全相同的 table 中获取 table 的 'category_id' 并检查 'category_data' table 以查找从产品中获取哪些额外数据 table。然后我将再次 select 根据产品类别 table 的附加数据。 IE:如果类别是 'phone'.
,则为 'phone_ram' 列
如何实现?
使用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;
}
仓促写下,希望对您有所帮助。
此外,尝试在您的数据库中使用一些结构:)
我正在构建一个应用程序来存储不同类型产品的数据。 这是我的产品的架构 table:-
------------------------------------------------------------------------------------
| id | product_name | price | details | category_id | phone_ram | bike_mileage |
------------------------------------------------------------------------------------
此处id、product_name、price、details栏目适用于所有商品。但是 'phone_ram' 栏仅适用于 'phone' 类别下的项目,而 'bike_mileage' 栏适用于 'bike' 类别下的项目。
这里是 'category' table:-
----------------------
| id | category_name |
----------------------
| 1 | phone |
----------------------
| 2 | bike |
----------------------
这里是'category_data' table,它存储了任何类别的数据名称。
-----------------------------------
| id | category_id | name_of_data |
-----------------------------------
| 1 | 1 | phone_ram |
-----------------------------------
| 2 | 2 | bike_mileage |
-----------------------------------
现在,在我的查询中。首先,我将 select 'products' table 中适用于所有类型数据的列。然后我将从完全相同的 table 中获取 table 的 'category_id' 并检查 'category_data' table 以查找从产品中获取哪些额外数据 table。然后我将再次 select 根据产品类别 table 的附加数据。 IE:如果类别是 'phone'.
,则为 'phone_ram' 列如何实现?
使用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;
}
仓促写下,希望对您有所帮助。
此外,尝试在您的数据库中使用一些结构:)