Вывод данных из MySQL по категориям

157
25 сентября 2018, 21:40

Есть база данных, в ней 2 таблицы(category_sklad состоящая из id name и products_sklad состоящая из id name kolvo category_id). Собственно вот что планируется сделать, например есть красный количество 100 и категория краска. Как сделать следующее: при выборе категории идет перенаправление на другую страницу и в ней распечатывается таблица со всеми товарами, которые имеют id краска. Выбор категории осуществляется так:

	$sql1 = "SELECT * FROM category_sklad"; 
	$result_select1 = mysql_query($sql1); 
	echo "<select name='category_id'>"; 
	while($object1 = mysql_fetch_object($result_select1)){ 
		echo "<option value = '$object1->id' > $object1->name</option>"; 
	} 
	echo "</select>";

Answer 1

Если я правильно вас понял, то достаточно написать на странице вывода по категории (например cat.php) следующее:

<?php
if(!isset($_GET['category_id']))
    exit();
$cid = striptags($_GET['category_id']);
//Защита от команд внутри строки
//Рекомендую не использовать расширение mysql, так как оно устарело
//Вместо него используйте mysqli или pdo_mysql
//$db = mysqli("host", "login", "pass");
//$db->select_db("db_name");
$sql = "SELECT * FROM products_sklad WHERE category_id=$cid";
$result = $db->query($sql);
while($line = $result->fetch_object()){
    //Вывод объекта, как он вам нужен
}
?>

Так же в лендинге следует дописать (index.php или index.html например):

<!-- Предположим, что страница, где отображаются товары категории называется cat.php -->
<form action="/cat.php" method="GET">
    <select name="category_id">
        <?php
            $query = "SELECT * FROM category_id";
            $result = $db->query($query);
            while($object = $result->fetch_object())
                echo "<option value=".$object->id.">".$object->name."</option>";
        ?>
    </select>
</form>

В SQL запросе имеется возможность указывать фильтры на основе выражении после "WHERE", т.е. в данном примере, если ячейка category_id в записи таблицы products_sklad совпадает с подставленым значением из $cid, то эта строка включится в результат

READ ALSO
Что означает запись в error log?

Что означает запись в error log?

Всем привет! Отлавливаю ошибку wordpress + ubuntu 1604 , apache2

140
Laravel 5.4 ошибка при создании фасада

Laravel 5.4 ошибка при создании фасада

Laravel 54 ошибка при создании фасада

124
Генерация кода по заданной структуре JSON API

Генерация кода по заданной структуре JSON API

Я не уверен, отностися ли это полностью к SuiteCRM или к JSON APIВероятно, это что-то посередине

111
Как они это сделали? огромная задержка при парсинге страниц

Как они это сделали? огромная задержка при парсинге страниц

если гуляем по сайту через браузер, например откроем эту страницу

135