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

PHP HTML Как сделать что бы выбрав паралельно два раздела сайта, из бд выводились данные по ним

12.03.2017, 11:17. Показов 561. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вод народ траблы у меня последняя неделя курсач по вебу айнид хелп!!!111одинодин
немногопредыстории: так как я не очень фанат пхпайчтиэмел не очень вьезжаю и не очень то хочу, но помощь нужна так как сам не могу додуматься (не тупой)
дела обстоят так

сайт-каталог детских игрушек
есть "категории" и "пол"
как сделать что бы при выборе категории а потом пола выводило игрушки из этой категории по этому полу

пока что получилось выбрать или пол или категорию отдельно
а как соеденить это все хз(
может я не правильно начал строить все?

есть меню с ссылками:

HTML5
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
<ul id="menu">
    <li>
        <?php echo '<a href="?all">Головна</a>'?>
    </li>
    <li>
        <a href="#">Категории</a>
        <ul>
            <li><?php echo '<a href="?miagkie">Мягкие</a>'?></li>
            <li><?php echo '<a href="?vann">Для ванной</a>'?></li>
            <li><?php echo '<a href="?car">Категория 3</a>'?></li>
            <li><?php echo '<a href="?car">Категория 4</a>'?></li>
        </ul>
    </li>
    <li>
        <a href="#">Пол</a>
        <ul>
            <li><?php echo '<a href="?for_boy">Для мальчиков</a>'?></li>
            <li><?php echo '<a href="?for_girl">Для девочек</a>'?>    </li>   
        </ul>
    </li>
    <li>
        <a href="#">Пункт №4</a>
        <ul>
            <li><a href="#">Подпункт №1</a></li>
        </ul>
    </li>
    <li>
        <a href="#">О нас</a>   
    </li>
</div>
и пхп код

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if(isset($_GET['miagkie']))  $kat=1;
if(isset($_GET['vann']))     $kat=2;
if(isset($_GET['for_boy']))  $sex=2;
if(isset($_GET['for_girl'])) $sex=1;
 
$query=mysql_query("SELECT * FROM TAB");
 
$data=array();
while($result=mysql_fetch_assoc($query))
{
  if($result['kat']==$kat)
     if($result['sex']==$sex)
  $data[]=array(
                'title_product'=>$result['title_product'],
                'img'=>$result['img'],
                'price'=>$result['price'],
                );  
}
 mysql_free_result($query);
проблема в том что при нажатии на категорию пол не сохраняеться и переменная &sex остаеться пустой, аналогично наоборот, как сделать все правильно?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.03.2017, 11:17
Ответы с готовыми решениями:

Как сделать что б из потока выводились данные на листбокс
Есть код: #pragma optimize (&quot;&quot;, off) ULONG WINAPI ServiceThread(PVOID lpParam) { while(1) { Sleep(20); ...

Объясните пожалуйста, как сделать в отчете что бы не выводились определенные данные
Есть поле с датой, нужно сделать чтобы при значении другого поля &quot;Демонтаж&quot; дата не высвечивалась, поле оставалось пустым

как сделать фильтр чтобы выводились данные НЕ по алфавиту
Добрый день!возникла проблемка.У меня в столбцах написаны месяца.Ставлю в столбце фильтр.Он фильтрует по алфавиту. Знаю,что нужно...

9
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
12.03.2017, 11:39
То что вы описываете это фильтры, естественно из меню они не делаются. Надо отдельно пилить.

Вкратце, на основе выбранных чекбоксов формируешь запрос для выборки.
Пример тут.
1
0 / 0 / 0
Регистрация: 12.03.2017
Сообщений: 4
12.03.2017, 11:57  [ТС]
Спасибо, теперь знаю в какую сторону копать, но еще, там примеры "выбрал, ввел нажал кнопку - вывело" как сделать что бы при каждом изминении фильтра все обновлялось автоматически(поставил чекбокс - запрос обновился вывело новые результаты, убрал - аналогично) ?
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
12.03.2017, 12:38
Ну в данном случае можно и через меню.

В любом случае все должно быть отражено в адресе (иногда фильтры делаются через запоминание выбранных параметров, но это не тот случай), например:
/miagkie
/miagkie/for_boy
/miagkie/for_girl

На основе элементов адреса вы добавляете нужные простые условия в основной запрос, не забыв про связку AND.

Добавлено через 3 минуты
Только сделайте так, чтобы не было дублей вроде /miagkie/for_boy и /for_boy/miagkie.
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
12.03.2017, 13:02
Цитата Сообщение от miketomlin Посмотреть сообщение
Ну в данном случае можно и через меню
Выводить 100500 ссылок на каждый случай?
Цитата Сообщение от Viktorianus Посмотреть сообщение
что бы при каждом изминении фильтра все обновлялось автоматически
через ajax.
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
12.03.2017, 13:18
tarasalk, так, может, нет такого. ТС описал вполне естественное деление для многих магазинов. Варианты могут быть разные, например ссылки «Мальчики», «Девочки» напротив каждого пункта меню «Категории».
0
0 / 0 / 0
Регистрация: 12.03.2017
Сообщений: 4
12.03.2017, 13:56  [ТС]
я уже сделал фильтр который собирает запрос из формы

HTML5
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
<form name="form" action="" method="post">
<ul id="menu">
    <li>
        <?php echo '<a href="?all">Головна</a>'?>
    </li>
    <li>
        <a href="#">Категории</a>
        <ul>
            <li><a href="#"><input type="checkbox" name="k[]" value="1" /> Мягкие</a></li>
            <li><a href="#"><input type="checkbox" name="k[]" value="2" /> Для ванной</a></li>
            <li><?php echo '<a href="?car">Категория 3</a>'?></li>
            <li><?php echo '<a href="?car">Категория 4</a>'?></li>
        </ul>
    </li>
    <li>
        <a href="#">Пол</a>
        <ul>
            <li><a href="#"><input type="checkbox" name="s[]" value="1" /> Для девочек</a></li>
            <li><a href="#"><input type="checkbox" name="s[]" value="1" /> Для мальчиков</a></li>
        </ul>
    </li>
    <li>
        <input type="submit" name="filter" value="Найти" />
    </li>
    <li>
        <a href="#">О нас</a>   
    </li>
</div>
 
 
</form>

одно но, поганая кнопка SUBMIT как ее лишиться ?
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
function addWhere($where, $add, $and = true) {
    if ($where) {
      if ($and) $where .= " AND $add";
      else $where .= " OR $add";
    }
    else $where = $add;
    return $where;
  }
 
if (!empty($_POST["filter"])){
 $where = "";
if ($_POST["k"]) $where = addWhere($where, "kat IN (".htmlspecialchars(implode(",", $_POST["k"])).")");
if ($_POST["s"]) $where = addWhere($where, "sex IN (".htmlspecialchars(implode(",", $_POST["s"])).")");
$sql = "SELECT * FROM TAB ";
 if ($where) $sql .= " WHERE $where";
}
// echo $sql;
$query=mysql_query($sql);
Добавлено через 1 минуту
Цитата Сообщение от miketomlin Посмотреть сообщение
Ну в данном случае можно и через меню.

В любом случае все должно быть отражено в адресе (иногда фильтры делаются через запоминание выбранных параметров, но это не тот случай), например:
/miagkie
/miagkie/for_boy
/miagkie/for_girl

На основе элементов адреса вы добавляете нужные простые условия в основной запрос, не забыв про связку AND.

Добавлено через 3 минуты
Только сделайте так, чтобы не было дублей вроде /miagkie/for_boy и /for_boy/miagkie.
мне кажется это костыль, но попробую на случай если все рухнет :3

Добавлено через 2 минуты
Цитата Сообщение от miketomlin Посмотреть сообщение
tarasalk, так, может, нет такого. ТС описал вполне естественное деление для многих магазинов. Варианты могут быть разные, например ссылки «Мальчики», «Девочки» напротив каждого пункта меню «Категории».
один одногрупник так пишет, создает на каждую ссылку все по новой, а я хочу быть лучше

Добавлено через 4 минуты
Цитата Сообщение от tarasalk Посмотреть сообщение
Выводить 100500 ссылок на каждый случай?

через ajax.
не учил Ajax( по этому не знаю за что браться, а времени мало
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
12.03.2017, 14:07
Цитата Сообщение от Viktorianus Посмотреть сообщение
одно но, поганая кнопка SUBMIT как ее лишиться
Нормальная кнопка. Даже в AJAX-фильтрах делают кнопку «Поиск». Если реагировать на каждое изменение в контроллах, повторно формируя список, будут тормоза.

Цитата Сообщение от Viktorianus Посмотреть сообщение
мне кажется это костыль
Что именно? Я вам рассказал, как это в принципе делается.

Добавлено через 8 минут
Цитата Сообщение от Viktorianus Посмотреть сообщение
один одногрупник так пишет, создает на каждую ссылку все по новой, а я хочу быть лучше
Что по новой? Тут используется один обработчик, либо возможности каркаса плюс простой обработчик. Даже меню при желании можно сформировать алгоритмически.
0
0 / 0 / 0
Регистрация: 12.03.2017
Сообщений: 4
12.03.2017, 14:40  [ТС]
Цитата Сообщение от miketomlin Посмотреть сообщение
Нормальная кнопка. Даже в AJAX-фильтрах делают кнопку «Поиск». Если реагировать на каждое изменение в контроллах, повторно формируя список, будут тормоза.

Что именно? Я вам рассказал, как это в принципе делается.

Добавлено через 8 минут
Что по новой? Тут используется один обработчик, либо возможности каркаса плюс простой обработчик. Даже меню при желании можно сформировать алгоритмически.
я не думаю что у меня будут тормоза, но мне интересно как это сделать без кнопки
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
12.03.2017, 16:03
Цитата Сообщение от Viktorianus Посмотреть сообщение
я не думаю что у меня будут тормоза
Сайты пишут не для себя, а для людей.

Цитата Сообщение от Viktorianus Посмотреть сообщение
но мне интересно как это сделать без кнопки
А мне интересно получать ответы на мои уточняющие вопросы. JS-обработка событий плюс вызов submit (либо AJAX) или использование ссылок вместо контроллов (нужно иметь адреса на все множество возможных состояний списка, но не обязательно ссылки отображать все сразу на одной странице).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2017, 16:03
Помогаю со студенческими работами здесь

Как сделать, чтобы два массива выводились один под другим?
Вот код. Программа работает, но выводит два массива в одну строчку , а хотелось бы чтобы выводилось как два разных массива один под одним. ...

Как сделать что бы два сайта работали от одной базы
..Всем Привет. П.С. Сразу скажу.. не задавайте вопросы.. а нафига такое делать и т д... - есть wordpress устанвленный уставленный...

Нужно сделать паралельно два работающих потока
Нужно сделать паралельно два работающих потока. В одном ui-&gt;webkit будет работать. Во втором будут посылаться данные в...

Как сделать чтобы не выводились данные при пустом значении WHERE
Народ, как сделать чтобы не выводились данные при пустом значении WHERE? Например:SELECT * FROM `news` WHERE `image` != 'пустое значение';

Как сделать, чтобы данные с одной формы выводились на другую?
вводятся данные на форме 2 и после нажатия на кнопку &quot;начать тестирование&quot; открывается форма с тестом после того как...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю 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. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru