Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.83/47: Рейтинг темы: голосов - 47, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26

Вывод товаров по категориям

09.07.2018, 12:37. Показов 9285. Ответов 28
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Выводятся все товары, при нажатии на категории все равно выводятся все товары как это исправить?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
<?php 
    include("include/db_connect.php");
 
 
 
 $cat = $_GET["cat"];
 $cat = strip_tags($cat);
 $cat = mysqli_real_escape_string ($con,$cat);
 $cat = trim($cat);
 
 $type = $_GET["type"];
 $type = strip_tags($type);
 $type = mysqli_real_escape_string ($con,$type);
 $type = trim($type);
 
 
 
 
 $sorting = $_GET["sort"];
 switch ($sorting)
 {
    case'price-asc';
    $sorting = 'price ASC';
    $sort_name = 'От дешевых к дорогим';
    break;
 
    case'price-desc';
    $sorting = 'price DESC';
    $sort_name = 'От дорогих к дешовым';
    break;
 
    case'popular';
    $sorting = 'count DESC';
    $sort_name = 'Популярное';
    break;
 
    case'news';
    $sorting = 'datetime DESC';
    $sort_name = 'Новинки';
    break;
 
    case'brand';
    $sorting = 'brand';
    $sort_name = 'От А до Я';
    break;
 
    default: 
    $sorting = 'products_id DESC';
    $sort_name = 'Нет сортировки';
    break;
 }
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Natali_shop</title>
                
        <!-- Google Fonts integration: http://www.google.com/fonts -->
        <link href='http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,700,300|Love+Ya+Like+A+Sister' rel='stylesheet' type='text/css'>
        
       <link rel="stylesheet" href="css/styles.css">
       <link rel="stylesheet" href="css/reset.css">
       <script type="text/javascript" src="/js/jquery-3.3.1.js"></script>
       <script type="text/javascript" src="/js/shop-script.js"></script>
       <script type="text/javascript" src="/js/jquery.cookie-1.4.1.min.js"></script>    
        <!-- CSS --><link href="https://fonts.googleapis.com/css?family=Open+Sans:400,700,800&amp;subset=cyrillic" rel="stylesheet">
      
</head>
    <body>
    <div id="block-body">
 
    <?php
       include("include/block-header.php");
    ?>
 
    <div id="block-right">
    <?php
       include("include/block-category.php");
       include("include/block-parameter.php");
    ?>
 
    </div>
 
    <div id="block-content">
        <div id="block-sorting">
            <p id="nav-breadcrumbs"><a href="index.php">Главная страница</a> \ <span>Все товары</span></p>
            <ul id="options-list">
                <li>Вид: </li>
                <li><img id="style-grid" src="/images/Icon-grid.png"></li>
                <li><img id="style-list" src="/images/Icon-list.png"></li>
                <li>Сортировать:</li>
                <li><a id="select-sort"><?php echo $sort_name; ?></a>
                <ul id="sorting-list">
                    <li><a href="index.php?sort=price-asc">От дешевых к дорогим</a></li>
                    <li><a href="index.php?sort=price-desc">От дорогих к дешовым</a></li>
                    <li><a href="index.php?sort=popular">Популярное</a></li>
                    <li><a href="index.php?sort=news">Новинки</a></li>
                    <li><a href="index.php?sort=brand">От А до Я</a></li>
                </ul>
 
                </li>
            </ul>
        
 
        </div>
        <ul id="block-tovar-grid">
        <?php 
         
 
         if (!empty($cat) && !empty($type))
         {
 $querycat = "AND brand='$cat' AND type_tovara='$type'";
 }else
    {
     if(!empty($type))
     {
 $querycat = "AND type_tovara='$type'";
 }else
 {
 $querycat = "";
}
}
 
 
          $result = mysqli_query($con,"SELECT * FROM table_products WHERE visible='1' $querycat ORDER BY $sorting");
          if (mysqli_num_rows($result) > 0)
          {
            $row = mysqli_fetch_array($result);
            do
            {
 
if ($row["image"] != "" && file_exists("./uploads_images/".$row["image"]))
{
    $img_path = './uploads_images/'.$row["image"];
    $max_width = 200;
    $max_height = 200;
    list($width, $height) = getimagesize($img_path);
    $ratioh = $max_height/$height;
    $ratiow = $max_width/$width;
    $ratio = min($ratioh, $ratiow);
    $width = intval($ratio*$width);
    $height = intval($ratio*$height);
}else
{
    $img_path = "/images/noimage.gif";
    $width = 110;
    $height = 200;
}
 
                echo '
 
                <li>
                <div class="block-images-grid">
                <img src="'.$img_path.'"width="'.$width.'"height="'.$height.'" />
                </div>
                <p class="style-title-grid"><a href="">'.$row["title"].'</a></p>
                <ul class="reviews-and-counts-grid">
                <li><img src="/images/icon-eye.png"/><p>0</p></li>
                <li><img src="/images/comment-icon.png"/><p>0</p></li>
                </ul>
                <a class="add-cart-style-grid"></a>
                <p class="style-price-grid"><strong>'.$row["price"].'</strong> грн.</p>
                <div class="mini_features">
                '.$row["mini_features"].'
                </div>
 
                </li>
 
                ';
 
            }
            while ($row = mysqli_fetch_array($result));             
          }
         ?>
         </ul>
 
 
         <ul id="block-tovar-list">
        <?php 
          $result = mysqli_query($con,"SELECT * FROM table_products WHERE visible='1' $querycat ORDER BY $sorting"); 
          if (mysqli_num_rows($result) > 0)
          {
            $row = mysqli_fetch_array($result);
            do
            {
 
if ($row["image"] != "" && file_exists("./uploads_images/".$row["image"]))
{
    $img_path = './uploads_images/'.$row["image"];
    $max_width = 150;
    $max_height = 150;
    list($width, $height) = getimagesize($img_path);
    $ratioh = $max_height/$height;
    $ratiow = $max_width/$width;
    $ratio = min($ratioh, $ratiow);
    $width = intval($ratio*$width);
    $height = intval($ratio*$height);
}else
{
    $img_path = "/images/noimage.gif";
    $width = 110;
    $height = 200;
}
 
                echo '
 
                <li>
                <div class="block-images-list">
                <img src="'.$img_path.'"width="'.$width.'"height="'.$height.'" />
                </div>
                <ul class="reviews-and-counts-list">
                <li><img src="/images/icon-eye.png"/><p>0</p></li>
                <li><img src="/images/comment-icon.png"/><p>0</p></li>
                </ul>
                <p class="style-title-list"><a href="">'.$row["title"].'</a></p>
                <a class="add-cart-style-list"></a>
                <p class="style-price-list"><strong>'.$row["price"].'</strong> грн.</p>
                <div class="style-text-list">
                '.$row["mini_description"].'
                </div>
 
                </li>
 
                ';
 
            }
            while ($row = mysqli_fetch_array($result));             
          }
         ?>
         </ul>
    </div>
 
    <?php
       include("include/block-footer.php");
    ?>
 
 
    </div>
 
    </body>
</html>
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.07.2018, 12:37
Ответы с готовыми решениями:

Выбор товаров по категориям
Добрый день! Столкнулась с такой ошибкой: Ошибка You have an error in your SQL syntax; check the manual that corresponds to your MariaDB...

Вывод из БД + разделение по категориям
Добрый день требуется реализовать что-то вроде этого: Я пробовал сделать таким образом: $getcats = mysql_query (&quot;SELECT...

Вывод страниц по категориям
Всем привет! Ребята подскажите, растолкуйте, как содержать информацию в базе данных по категориям и как её выводить по категориям.

28
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
12.07.2018, 15:24  [ТС]
Студворк — интернет-сервис помощи студентам
atanov,
Вложения
Тип файла: zip db_shop.zip (1.6 Кб, 2 просмотров)
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
12.07.2018, 16:03
Azag, не знаю, что у Вас не получается, но здесь всё крайне просто:

HTML5
1
2
3
4
5
6
7
<ul id = "sorting-list">
    <li><a href = "102.php?sort=price-asc">От дешевых к дорогим</a></li>
    <li><a href = "102.php?sort=price-desc">От дорогих к дешовым</a></li>
    <li><a href = "102.php?sort=popular">Популярное</a></li>
    <li><a href = "102.php?sort=news">Новинки</a></li>
    <li><a href = "102.php?sort=brand">От А до Я</a></li>
</ul>
обработчик (102.php)
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$host = 'localhost';
$database = 'test'; 
$user = 'user';
$password = '1234';
$connect = "mysql:host = $host; dbname = $database; charset = UTF8";
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
            ];
    $pdo = new PDO($connect, $user, $password, $options);
switch($_GET['sort'])
{
    case 'price-asc':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `price` ASC";
    break;
    case 'price-desc':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `price` DESC";
    break;
    case 'popular':
        $sql = "SELECT * FROM $database.`table_products`";//`popular` нету, поэтому выводиться всё как попало
    break;
    case 'news':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `new` ASC";
    break;
    case 'brand':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `brand` ASC";
    break;  
}
$perform = $pdo->prepare($sql);
$perform->execute();
while($row = $perform->fetch(PDO::FETCH_LAZY))
{
    echo $row['title'].' '.$row['price'].' '.$row['brand'].' '.$row['mini_description'].'<br>';
}
pdo не пугайтесь, это получше mysql и намного безопасней, если в бд что-то заносить.
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
12.07.2018, 16:29  [ТС]
atanov,
спасибо конечно, но как раз эта сортировка у меня работает.
мне нужно чтобы когда я нажимаю на кнопку "Платья" у меня выводились только Платья,
когда нажимаю на "костюмы" - костюмы и тд.
А сортировка работает.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
12.07.2018, 16:34
Azag, не проблема:

HTML5
1
2
3
4
5
6
7
8
9
<ul id = "sorting-list">
    <li><a href = "102.php?sort=price-asc">От дешевых к дорогим</a></li>
    <li><a href = "102.php?sort=price-desc">От дорогих к дешовым</a></li>
    <li><a href = "102.php?sort=popular">Популярное</a></li>
    <li><a href = "102.php?sort=news">Новинки</a></li>
    <li><a href = "102.php?sort=brand">От А до Я</a></li>
    <li><a href = "102.php?sort=costum">Костюмы</a></li>
    <li><a href = "102.php?sort=dress">Платье</a></li>
</ul>
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
$host = 'localhost';
$database = 'test'; 
$user = 'user';
$password = '1234';
$connect = "mysql:host = $host; dbname = $database; charset = UTF8";
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
            ];
    $pdo = new PDO($connect, $user, $password, $options);
switch($_GET['sort'])
{
    case 'price-asc':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `price` ASC";
    break;
    case 'price-desc':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `price` DESC";
    break;
    case 'popular':
        $sql = "SELECT * FROM $database.`table_products`";//`popular` нету, поэтому выводиться всё как попало
    break;
    case 'news':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `new` ASC";
    break;
    case 'brand':
        $sql = "SELECT * FROM $database.`table_products` ORDER BY `brand` ASC";
    break;
    case 'costum':
        $sql = "SELECT * FROM $database.`table_products` WHERE `brand` = 'Костюм'";
    break;
    case 'dress':
        $sql = "SELECT * FROM $database.`table_products` WHERE `brand` = 'Платье'";
    break;  
}
$perform = $pdo->prepare($sql);
$perform->execute();
while($row = $perform->fetch(PDO::FETCH_LAZY))
{
    echo $row['title'].' '.$row['price'].' '.$row['brand'].' '.$row['mini_description'].'<br>';
}
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
12.07.2018, 17:09  [ТС]
atanov,
проблемка все таки есть)
вот блок категорий который подтягивается с базы https://www.cyberforum.ru/atta... 1531318238
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<div id="block-category">
    <p class="header-title">Категории товаров</p>
 
    <ul>
        
        <li><a id="index1">Женская одежда</a>
 
        <ul class="category-section">
            <li><a href=""><strong>Вся одежда</strong></a></li>
        <?php 
        $result = mysqli_query($con,"SELECT * FROM category WHERE type='womensclothing'");
          if (mysqli_num_rows($result) > 0)
          {
            $row = mysqli_fetch_array($result);
            do
            {
 
                echo '
 
                <li><a href="view_cat.php?$cat='.strtolower($row["brand"]).'$type='.$row["type"].'">'.$row["brand"].'</a></li>';
                
                }
            while ($row = mysqli_fetch_array($result));             
          }
 
        ?>
        </ul>
 
 
        </li>
                <li><a id="index2">Женская обувь</a>
 
        <ul class="category-section">
            <li><a href=""><strong>Вся обувь</strong></a></li>
            <?php 
        $result = mysqli_query($con,"SELECT * FROM category WHERE type='womensshoes'");
          if (mysqli_num_rows($result) > 0)
          {
            $row = mysqli_fetch_array($result);
            do
            {
 
                echo '
 
                <li><a href="view_cat.php?$cat='.strtolower($row["brand"]).'$type='.$row["type"].'">'.$row["brand"].'</a></li>';
                
                }
            while ($row = mysqli_fetch_array($result));             
          }
 
        ?>
 
        </ul>
 
 
        </li>
 
 
    </ul>
 
 
 
</div>
и нужно чтобы при нажатии на них происходила подборка товаров с базы
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
12.07.2018, 17:34
Azag, ну а кто мешает сделать динамический список, например так:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$host = 'localhost';
$database = 'test'; 
$user = 'user';
$password = '1234';
$connect = "mysql:host = $host; dbname = $database; charset = UTF8";
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
            ];
    $pdo = new PDO($connect, $user, $password, $options);
$sql = "SELECT * FROM $database.`category`";
$perform = $pdo->prepare($sql);
$perform->execute();
while($row = $perform->fetch(PDO::FETCH_LAZY))
{
    echo '<li><a href = "102.php?sort='.$row['type'].'">'.$row['brand'].'</a></li>';
}
а сортировку делать дискриминацией по $row['type'].
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
12.07.2018, 18:10  [ТС]
atanov,
мешают сделать мои знания в этой области.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
13.07.2018, 08:41
Azag, да нет же, здесь просто надо понять алгоритм, того, что Вы хотите вывести и его реализовать. Для начала чётко сформулируйте последовательность действий - это будет 99% решения задачи.
0
0 / 0 / 0
Регистрация: 31.08.2019
Сообщений: 2
27.09.2019, 13:45
вот так попробуйте
if (!empty($cat) & !empty($type))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.09.2019, 13:45

Вывод статей по категориям
Помогите вывести статьи в учебном блоге. Не могу понять как это сделать. Так у меня выводятся все статьи, которые есть в блоге ...

Вывод статей по категориям
Ребят, помогите плиз в php и mysql совсем недавно. Нужно чтобы при нажатии на категорию, выводились все статьи из этой категории. Я...

Вывод из таблицы БД новостей по категориям.
Здравствуйте! Подскажите пожалуйста, как это реализовать: Таблица состоит из 3 полей: id, cat и novost В поле cat одна цифра 1...

Сортировка по категориям + постраничный вывод
Здравствуйте, есть база данных, из которой выводятся данные постранично и есть select, который содержит наименования категорий. Для...

Вывод данных из базы по категориям
Доброго времени суток, уважаемые! Подскажите пожалуйста. Есть таблица matches, в ней поля match_id, match_date, match_time, match_team1,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
29
Ответ Создать тему
Новые блоги и статьи
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы ## О чём эта статья В процессе построения ОДУ-модели (система дифференциальных. . .
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет) Содержание проекта Симуляция вековой (50 лет) экологической сукцессии в почве леса Основные участники: АМ-гриб, ЭКМ-гриб,. . .
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru