С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.52/21: Рейтинг темы: голосов - 21, средняя оценка - 4.52
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 30
1

Сортировка, выборка товаров с БД

18.02.2016, 15:10. Показов 3909. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день всем.

помогите плз сделать выборку товаров из БД, а то башка чёт не варит))

кароче поэтапно:

в БД есть товары (канцтовары) и у каждого есть тип товара. тип товара может быть одинаковым у нескольких товаров.
например
скотч 12*20, тип (скотч канцелярский)
скотч 12*30, тип (скотч канцелярский)
скотч 24*20, тип (скотч канцелярский)
скочт 24*30 тип (скотч канцелярский)

скотч 48*100, тип (скотч упаковочный)
скотч 48*200, тип (скотч упаковочный)
скотч 48*300, тип (скотч упаковочный)

так же у них есть номер категории.

так вот:

нужно, при входе на страницу с номером категории "2" (ну или другой номер который есть (номер находится в $_GET) ) в выпадающий список поместить типы товаров принадлежащим к товарам данной категории.

дальше при выборе типа товара в этом, сформированном списке, выдать на страницу результат (при отправке, данные выбранные в списке, нужно отправит в $_GET).

ну в общем как то так.

давайте пообщаемся, может наталкнете меня на мысль.

спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.02.2016, 15:10
Ответы с готовыми решениями:

Сортировка товаров
В общем есть index.php,в котором хранятся правила роутинга и подключаются нужные файлы.Так же есть...

Сортировка товаров
Как сделать сортировку товаров по атрибутам? Цикл вывода товаров приведен ниже. <!-- <div...

Не работает сортировка товаров при выводе из БД mysql
Здравствуйте, уважаемые форумчане. При выводе из БД MySQL (denwer) на локалхосте товаров все...

Сортировка товаров по цене не учитывает их постраничный вывод!!!
Короче вывожу товары постранично из базы. Есть вверху товаров у меня две ссылки (при нажатии на...

33
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.02.2016, 16:05 2
sidor84, не совсем понятно за чем дело стало? Вы сами все написали, получить категорию через $_GET) сделать выборку из бд используя категорию полученной через$_GET, что сделать с отобранными данными.
0
52 / 52 / 39
Регистрация: 15.11.2014
Сообщений: 696
18.02.2016, 16:13 3
Если я правильно понял, то нужно например, сделать выборку по одной категории и чтобы в ней отображался определенный тип скотча. Тогда нужно вытаскивать данные по двум условиям: по категории (допустим номер 2) и по типу (допустим упаковочный скотч).
Тогда запрос должен выглядеть так:
SQL
1
SELECT * FROM `tovari` WHERE `categoria` = 2 AND `tip`= "упаковачный";
0
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.02.2016, 16:18 4
Цитата Сообщение от Mikhail Shell Посмотреть сообщение
по категории (допустим номер 2) и по типу (допустим упаковочный скотч).
На сколько я понял "тип товара" == "номер категории" (или "скотч канцелярский" == "2")
0
52 / 52 / 39
Регистрация: 15.11.2014
Сообщений: 696
18.02.2016, 16:23 5
Цитата Сообщение от Gcom Посмотреть сообщение
"тип товара" == "номер категории"
Двойное равно это php синтаксис, а в sql (для выборки из таблицы из базы) нужно одно равно
0
Gcom
18.02.2016, 16:25
  #6

Не по теме:

Mikhail Shell,

Цитата Сообщение от Mikhail Shell Посмотреть сообщение
Двойное равно это php синтаксис, а в sql (для выборки из таблицы из базы) нужно одно равно
Я в курсе, написал так, как будто я уже сравниваю их именно на php :)

0
52 / 52 / 39
Регистрация: 15.11.2014
Сообщений: 696
18.02.2016, 16:30 7
Gcom, тем более нужно выбирать по канцелярскому типу или упаковочному и по номеру категории
Как было сказано:
Цитата Сообщение от sidor84 Посмотреть сообщение
в БД есть товары (канцтовары) и у каждого есть тип товара. тип товара может быть одинаковым у нескольких товаров.
например
скотч 12*20, тип (скотч канцелярский)
скотч 12*30, тип (скотч канцелярский)
скотч 24*20, тип (скотч канцелярский)
скочт 24*30 тип (скотч канцелярский)
скотч 48*100, тип (скотч упаковочный)
скотч 48*200, тип (скотч упаковочный)
скотч 48*300, тип (скотч упаковочный)
так же у них есть номер категории.
Gcom, или что вы имели в виду под
Цитата Сообщение от Gcom Посмотреть сообщение
"тип товара" == "номер категории" (или "скотч канцелярский" == "2")
sidor84, в общем повторюсь
Цитата Сообщение от Mikhail Shell Посмотреть сообщение
Если я правильно понял, то нужно например, сделать выборку по одной категории и чтобы в ней отображался определенный тип скотча. Тогда нужно вытаскивать данные по двум условиям: по категории (допустим номер 2) и по типу (допустим упаковочный скотч).
Тогда запрос должен выглядеть так:
SQL
1
SELECT * FROM `tovari` WHERE `categoria` = 2 AND `tip`= "упаковачный";
0
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.02.2016, 16:34 8
Mikhail Shell,
Цитата Сообщение от Mikhail Shell Посмотреть сообщение
Gcom, или что вы имели в виду под
"скотч канцелярский" == "2" и "скотч упаковочный" == "3"
Я так понял

Добавлено через 1 минуту
Mikhail Shell, тут остается только гадать, пока ТС не внесет ясности.
0
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 30
18.02.2016, 17:15  [ТС] 9
номер категории у меня определяет саму категорию
cat 1 = бумага
cat 2 = упаковочные материалы
и тд

если мы зайдем в cat 2 = упаковочные материалы

то увидим много разных товаров скотч упаковочный, стрейч пленка, скотч канцелярский

вот как раз в выпадающем списке пользователь сможет выбрать какой тип товара ему отобразить

но при этом товары с разными характеристиками, но у них один тип.
(человек хочет увидеть только скотч канцелярский)

вот я застрял на следующем:
как мне выгрузить из БД типы товаров (но не все подряд а объединить одинаковые)

допустим у меня в БД

товар 1 - - тип 1
товар 2 - - тип 1
товар 3 - - тип 2
товар 4 - - тип 3
товар 5 - - тип 2
товар 6 - - тип 3

в списке должно отражаться
тип1
тип2
тип3

при выборе тип2
выводим
товар 3 - - тип 2
товар 5 - - тип 2
0
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.02.2016, 17:23 10
Цитата Сообщение от sidor84 Посмотреть сообщение
допустим у меня в БД
товар 1 - - тип 1
товар 2 - - тип 1
товар 3 - - тип 2
товар 4 - - тип 3
товар 5 - - тип 2
товар 6 - - тип 3
Как реализовано это в БД, все в одной таблице? Или разбито на не сколько? Во всяком случае нужно знать "имена" полей и таблиц, что бы сделать запрос на выборку данных из нее

Добавлено через 46 секунд
Напишите каким запросом пытаетесь выбрать данные?
0
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 30
18.02.2016, 17:50  [ТС] 11
id | cat | description | img | price | brand | tip_kanc

Добавлено через 3 минуты
Да, все в одной таблице


2 | 2 | Скотч 40 мкм. Упаковочный скотч 48*100 | /skotch.jpg | 74.72 | Asmar | Скотч упаковочный

Добавлено через 1 минуту
По поводу запроса:

для выгрузки по типам, его нет.

я ж поэтому поводу тут и прошу.))
0
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.02.2016, 18:09 12
sidor84, по нормальному создать таблицу "типов" внести в нее их, а "первую" таблицу привести к виду
id | cat | description | img | price | brand | id_tip_kanc

id (id_tip_kanc) | name
1 | Скотч упаковочный
2 | Cкотч канцелярский

2 | 2 | Скотч 40 мкм. Упаковочный скотч 48*100 | /skotch.jpg | 74.72 | Asmar | 1

Да честно сказать, тут вообще нормализация не помешает этой таблице, да и всей БД в целом, а то так и будите "тупить над реализацией", каждый раз, когда что либо надо "добавить/подправить"
0
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 30
18.02.2016, 18:15  [ТС] 13
но при такой таблице же это возможно?

напишите плз
как отобрать по типу
и сформировать это в список
0
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.02.2016, 18:19 14
Цитата Сообщение от sidor84 Посмотреть сообщение
как отобрать по типу
Это вам написали выше, но с учетом вашей таблицы:
SQL
1
SELECT * FROM `Ваша_таблица` WHERE `cat` = 2 AND `tip_kanc`= "Скотч упаковочный";
0
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 30
18.02.2016, 18:24  [ТС] 15
Да, все правильно, этим запросом мы выбираем товар из БД, и выводим итоговый результат.
это я знал как сделать.

тут то вопрос в другом.

как мне наименование типов из "tip_kanc" вывести в список???
причем не просто все подряд, а одинаковые объединить.

т.е. список должен быть такой:
тип1
тип2
тип3

а не такой:
тип1
тип1
тип1
тип2
тип2
тип2
тип2
тип2
тип2
тип2
тип3
тип3
0
82 / 82 / 18
Регистрация: 03.02.2016
Сообщений: 564
Записей в блоге: 1
18.02.2016, 18:38 16
Цитата Сообщение от sidor84 Посмотреть сообщение
как мне наименование типов из "tip_kanc" вывести в список???
Если бы была отдельная таблица, то одним запросом можно было получить этот список, а так придется попыхтеть, как вариант, результаты запроса закинуть в массив, и уже с ним работать, но опять же, "не верный шаг" и можно с логикой пролететь (сохранить целостность логических связок данных внутри таблицы), так что крепитесь, стадия мазохизма только началась
0
52 / 52 / 39
Регистрация: 15.11.2014
Сообщений: 696
18.02.2016, 18:40 17
Лучший ответ Сообщение было отмечено sidor84 как решение

Решение

Цитата Сообщение от sidor84 Посмотреть сообщение
т.е. список должен быть такой:
тип1
тип2
тип3
а не такой:
тип1
тип1
тип1
тип2
тип2
тип2
тип2
тип2
тип2
тип2
тип3
тип3
sidor84, то есть вам нужно выбирать уникальные tip_kanс?
Чтобы вытащить уникальные типы нужно использовать GROUP BY типы.
Например,
SQL
1
SELECT * FROM `<таблица>` GROUP BY `tip_kanс`;
Стоит учесть что по запросу вытащится по одной записи с уникальными tip_kanс.
1
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 30
18.02.2016, 19:10  [ТС] 18
Спасибо, но что то пошло не так:
PHP
1
2
$result = mysql_query ("SELECT * FROM table WHERE cat='$catid' GROUP BY 'tip_kanс'",$db);
$myrow = mysql_fetch_array($result);
далее
PHP
1
print_r ($myrow['tip_kanc']);
и мне выводит только один тип, а у меня в БД их несколько.

Но вообще направление в диалоге мы с Вами верное выбрали)
0
Заблокирован
18.02.2016, 19:14 19
Mikhail Shell, вы с DISTINCT путаете. GROUP BY нужен только для агрегатных функций. Для задач ТСа достаточно сделать сортировку (ORDER BY) по tip_kanс в первую очередь, а потом просто выводить однотипные записи в отдельных блоках.

Добавлено через 1 минуту
sidor84, а вы в цикле вывод делаете?
0
0 / 0 / 0
Регистрация: 28.03.2015
Сообщений: 30
18.02.2016, 19:16  [ТС] 20
А поподробнее можно

Добавлено через 54 секунды
Ну принт_р выводит же весь массив
0
18.02.2016, 19:16
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.02.2016, 19:16
Помогаю со студенческими работами здесь

Выборка из базы и сортировка по алфавиту
Мне нужно сделать выборку из базы данных MySQL с сортировкой по алфавиту причем если в начале стоит...

SimpleXml сортировка и выборка данных
Здравствуйте, помогите пожалуйста: 1. Фрагмент xml кода &lt;Dance no=&quot;1&quot; name=&quot;W&quot;&gt; &lt;Result...

Выборка и сортировка самых популярных записей из MySQL
Можно ли осуществить выборку и сортировку самых популярных записей (из определённой колонки ) из...

Выборка из таблици товаров по самому максимальному рейтингу магазина, рейтинг мазаницов если есть одиноковые, выборка уже по минимальной цене
Всем привет, нужна помошь. Имеется следующая таблица товаров Таблица: products её колонки...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru