Выбор данных из таблицы с использованием данных другой таблицы

Я создаю приложение, которое хранит данные о различных типах продуктов.
Вот схема моей таблицы продуктов: —

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

Здесь столбец id, product_name, price и details применим ко всем продуктам. Но столбец «phone_ram» применим только к элементам категории «телефон», а столбец «bike_milib» применим к элементам категории «велосипед».

Вот таблица «категория»: —

----------------------
| 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», если категория «телефон».

Как мне этого добиться?

0

Решение

Используя 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;
}

Написал это на скорую руку, надеюсь, это поможет.

Кроме того, попробуйте использовать некоторую структуру в вашей базе данных 🙂

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]