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

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

09.07.2018, 12:37. Показов 9004. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru