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

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

09.07.2018, 12:37. Показов 9056. Ответов 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
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
09.07.2018, 13:01
Azag, проверьте, что у Вас приходи в GET массиве и логи mysql/php на предмет ошибок.
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
09.07.2018, 14:41  [ТС]
я был бы благодарен если бы Вы подсказали как это все сделать. Я в этом новичек
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
09.07.2018, 15:13
Azag, скорее всего у Вас в GET всё ОК, вот для примера:

HTML5
1
2
3
4
5
6
<meta charset = "utf-8">
<a href = "97.php?sort=price-asc">От дешевых к дорогим</a></br>
<a href = "97.php?sort=price-desc">От дорогих к дешЁвым</a></br>
<a href = "97.php?sort=popular">Популярное</a></br>
<a href = "97.php?sort=news">Новинки</a></br>
<a href = "97.php?sort=brand">От А до Я</a></br>
PHP
1
echo $_GET['sort'];
Проверьте, только замените название php, где будет вывод.
Дальше проверяйте правильно ли компонуется переменная, которая используется для вставки в sql запрос.
Потом проверить сам sql запрос (вот тут надо посмотреть логи, скорее всего sql запрос синтаксически не верен).
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
09.07.2018, 17:05  [ТС]
я не уточнил, у меня не работает вот это
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 $cat = $_GET["cat"];
 
 $type = $_GET["type"];
 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)
          {
Добавлено через 2 минуты
это аккордеон с категориями и при нажатии на любую из них выводятся все товары

Добавлено через 4 минуты
а где посмотреть логи?
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
09.07.2018, 20:34
Azag,
6-я строка
PHP
1
$querycat = "AND brand=".$cat." AND type_tovara=".$type.""";
12-я строка
PHP
1
$querycat = "AND type_tovara=".$type.""";
Цитата Сообщение от Azag Посмотреть сообщение
а где посмотреть логи
В логах сервера. Вы где локально кодите?
И ещё, выведите показ ошибок в начале php файла
PHP
1
Error_Reporting(E_ALL & ~E_NOTICE);
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
10.07.2018, 16:25  [ТС]
Цитата Сообщение от atanov Посмотреть сообщение
Вы где локально кодите?
в Open Server
заменил строки, выводит ошибку

Parse error: syntax error, unexpected '"' in W:\domains\Shop.com\view_cat.php on line 113

убрал одну кавычку, товары выводятся все.
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
10.07.2018, 16:30
Цитата Сообщение от Azag Посмотреть сообщение
убрал одну кавычку,
да, это я накосячил.
попробуйте вывести sql запросы отдельно, а потом в phpmyadmin их выполнить, чтобы проверить, правильно ли работает выборка в mysql.
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
10.07.2018, 18:42  [ТС]
сделал вот так
PHP
1
2
echo $query="SELECT * FROM table_products WHERE visible='1' $querycat";
$result = mysqli_query($con,$query) or die(mysqli_error());
вот что получил в браузере вместе с товарами вывелась надпись
SELECT * FROM table_products WHERE visible='1'
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 09:29
Цитата Сообщение от Azag Посмотреть сообщение
вот что получил в браузере вместе с товарами вывелась надпись
SELECT * FROM table_products WHERE visible='1'
Во-первых, sql запрос Вы увидели. Ничего не смущает?
Во-вторых, очевидно, что нет переменной $querycat.
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
11.07.2018, 15:44  [ТС]
как раз это и смущает что переменной нету
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 15:54
Azag, как раз то, что переменной $querycat нету, у Вас не вылезает sytax error. Попробуйте вот эту:

PHP
1
2
$querycat = 'someWhatString';
$query="SELECT * FROM table_products WHERE visible='1' $querycat";
Что вылезло?
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
11.07.2018, 16:01  [ТС]
Цитата Сообщение от atanov Посмотреть сообщение
Что вылезло?
вот что

SELECT * FROM table_products WHERE visible='1' someWhatString
Warning: mysqli_error() expects exactly 1 parameter, 0 given in W:\domains\Shop.com\view_cat.php on line 128
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 16:09
Azag, Вот, какие мысли?
Правильно, не верный запрос.
Давайте разберёмся - что Вы хотите получить этим sql запросом?
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
11.07.2018, 16:24  [ТС]
вот эту синтаксическую ошибку ?

SELECT * FROM table_products WHERE visible='1' someWhatStringYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'someWhatString' at line 1
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 16:35
Azag,
Цитата Сообщение от atanov Посмотреть сообщение
что Вы хотите получить этим sql запросом?
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
11.07.2018, 16:41  [ТС]
atanov, чтобы вывелась ошибка
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 16:48
Azag, какая ошибка? Вы же хочите что-то выбрать из бд? Что именно? Как сможете ответить на этот вопрос, составим правильный sql запрос и пойдём искать, где потерялась переменная.
0
0 / 0 / 0
Регистрация: 09.07.2018
Сообщений: 26
11.07.2018, 17:15  [ТС]
atanov,
У меня есть вот такой аккордеон https://www.cyberforum.ru/atta... 1531318238
мне нужно чтобы при нажатии на категории выводились товары соответствующие категориям
в базе есть вот такие две колонки https://www.cyberforum.ru/atta... 1531318382 https://www.cyberforum.ru/atta... 1531318382
из которых хочу делать выборку
Изображения
   
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
11.07.2018, 19:46
Azag, выложите экспорт из phpmyadmin сюда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.07.2018, 19:46
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru