【问题标题】:Selecting data from table using another table's data使用另一个表的数据从表中选择数据
【发布时间】:2015-07-27 11:04:36
【问题描述】:

我正在构建一个存储有关不同类型产品的数据的应用。 这是我的产品表的架构:-

------------------------------------------------------------------------------------
| id  | product_name  | price | details  | category_id | phone_ram  | bike_mileage |
------------------------------------------------------------------------------------

这里,id、product_name、price 和 details 列适用于所有产品。但是“phone_ram”列仅适用于“phone”类别下的项目,“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”表以查找要从产品表中获取哪些附加数据。然后我将再次根据产品表中的类别选择附加数据。 IE:如果类别为“电话”,则为“phone_ram”列。

如何实现?

【问题讨论】:

  • 为什么要将列添加为phone_ram 和bike mileage?您的数据库结构错误,请更正结构并以更准确的方式提出问题
  • 您的product 表中不需要phone_rambike_mileage 列。因为category_id 包含这些数据。我说的对吗?

标签: php mysql rdbms


【解决方案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;
 }

匆匆写下,希望对你有帮助。

另外,尝试在你的数据库中使用一些结构:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    • 2012-02-12
    • 2021-12-30
    • 2017-08-22
    • 1970-01-01
    • 2014-10-25
    相关资源
    最近更新 更多