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

Как выпадающее меню соединить с таблицей БД?

29.08.2015, 09:01. Показов 6810. Ответов 87
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые пользователи этого форума,подскажите пожалуйста как можно содержимое с таблицы БД вставить в выпадающее меню,вот скрипт что нужно изменить чтобы данные из бд содержались в выпадающем меню и проводилась выборка не просто а ч-з кнопку подобрать и после выбора необходимых данных ч-з выпадающее меню?
Код PHP
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<table bgcolor="">
<form action='meny.php' method='post'>
<div class="input-container">
<body marginwidth="0" marginheight="0">
<table width="1000" border="0" align="left" cellpadding="0" cellspacing="0">
<td width="200" style="background-color:330099; padding:20px">
<select name="pol"
<button type="submit"style="width:200px;height:45px"><option value="4">Все Города</option></button>
</select>
<select name="pol"
<button type="submit"style="width:200px;height:45px"><option value="4">Гостей</option></button>
</select>
<select name="pol"
<button type="submit"style="width:200px;height:45px"><option value="4">Спальні</option></button>
</select>
<button type="submit"style= "background-color:red;width:200px;height:45px"><option value="4">Подобрать</option></button>
</table>
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?
// Подключение к MySQL
$con = mysql_connect(".........",".........",".........");
if (!$con)
    die('Could not connect: ' . mysql_error());
mysql_select_db("..........", $con);
$sql = mysql_query("SET CHARACTER SET cp1251_koi8");
$bed = "";
if(isset($_GET['bedroom']))
$bedrooms = "&bedroom=".$_GET['bedroom'];
// Значения, полученные из формы
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
$key = isset($_GET['key']) ? $_GET['key'] : 'number';
 
// Разрешённые значения
$key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
$sort_array = array('asc','desc');
 
// Если указаны неправильные данные - выход
if(!in_array($key, $key_array) or !in_array($sort, $sort_array))
    exit('Неверный формат запроса!');
if(isset($_GET['price']) and (empty($_GET['v1']) or empty($_GET['v2'])))
    exit('Пустой запрос!');
    
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
 
// Если кол-во лет заполнено - вводим его в mysql-запрос и добавляем в фильтры таблицы
if(!empty($_GET['v1']) and !empty($_GET['v2']))
{
    $where = 'WHERE `bedroom` BETWEEN ' . $_GET['v1'] . ' AND ' . $_GET['v2'];
    $values = '&v1=' . $_GET['v1'] .'&v2=' . $_GET['v2'];
}
elseif(!empty($_GET['bedroom']))
{
    $where = 'WHERE `bedroom` = "' . $_GET['bedroom'] . '"';
    $values = null;
}
else
{
    $where = null;
    $values = null;
}
 
// Запрос к БД
$query = "SELECT * FROM `users` $where $orderby";
$result = mysql_query($query) or die(mysql_error());
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc';
?>
<h1>Спальні</h1>
<h4   align= "left">
<?
$bed = mysql_query("SELECT DISTINCT `bedroom` FROM `users`") or die(mysql_error());
while($row = mysql_fetch_assoc($bed)): ?>
<br><a href="?bedroom=<?=$row['bedroom']?>"><?=$row['bedroom']?></a>
<? endwhile; ?> 
</h4>
<table align= "center" border = 1>
<tr>
<th width='50'><a href="?key=number&sort=<?=$sort . $values?>">Номер</a></th>
<th width='50'><a href="?key=city&sort=<?=$sort . $values?>">Місто</a></th>
<th width='50'><a href="?key=name&sort=<?=$sort . $values?>">Назва</a></th>
<th width='50'><a href="?key=sleeper&sort=<?=$sort . $values?>">Гостей</a></th>
<th width='50'><a href="?key=bedroom&sort=<?=$sort . $values?>">Спальні</a></th>
<th width='50'><a href="?key=price&sort=<?=$sort . $values?>">Ціна</a></th>
</th></tr>
<? while($row = mysql_fetch_assoc($result)): ?>
    <tr>
        <td><?=$row['number']?></td>
        <td><?=$row['city']?></td>
        <td><?=$row['name']?></td>
        <td><?=$row['sleeper']?></td>
        <td><?=$row['bedroom']?></td>
        <td><?=substr($row['price'],0,30)?></td>
    </tr>
<? endwhile; ?>
</table>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.08.2015, 09:01
Ответы с готовыми решениями:

выпадающее меню таблицей
Привет. Подскажите плз что, куда добавить в код чтобы меню выпадало таблицей (х стольбцов на н строчек) /*пишем стиль для главного...

Как прикрепить выпадающее меню к названию в основном меню
Здравствуйте. Сейчас на сайте есть вертикальное меню, и при наведении на какой-либо его пункт, выпадающее меню появляется в самом верху...

Соединить кнопки с таблицей
Добрый день, помогите пожалуйста соединить кнопки с таблицей. У меня не получается. Сайт на вордпресс, теме Диви.. ...

87
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
06.09.2015, 16:35  [ТС]
Студворк — интернет-сервис помощи студентам
Спасибо Вам большое за Ваш ответ,всё получилось только есть один вопрос я изминил
PHP
1
2
3
4
5
  elseif(!empty($_GET['bedroom']))
{
    $where = 'WHERE `bedroom` = "' . $_GET['bedroom'] . '"';
    $values = null;
}
на
PHP
1
2
3
4
5
 elseif(!empty($_GET['bedroom'] && !empty($_GET['city']) && !empty($_GET['sleeper']))
{
    $where = "WHERE `bedroom` = '".$_GET['bedroom']."' and `city`='".$_GET['city']."' and `sleeper`='".$_GET['slipper']."'";
    $values = null;
}
не создавая проверки после запроса хотел посмотреть результат,так как что должно выводится указанно но почему-то результат пустая страница,после чего я создал проверку и всёравно результата нет подскажите возможно нужно указать ещё здесь
PHP
1
2
3
4
5
if(!empty($_GET['v1']) and !empty($_GET['v2']))
{
    $where = 'WHERE `bedroom` BETWEEN ' . $_GET['v1'] . ' AND ' . $_GET['v2'];
    $values = '&v1=' . $_GET['v1'] .'&v2=' . $_GET['v2'];
}
вот это?
PHP
1
(!empty($_GET['v3'])
своими советами и подсказками Вы мне очень помогли и результат увидеть и понять его работу,за это Вам большое спасибо...
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
06.09.2015, 20:15
Цитата Сообщение от arta42 Посмотреть сообщение
(!empty($_GET['v3'])
если честно, я по вашему коду не понял откуда берется(и что хранит) $_GET['v3']
0
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
07.09.2015, 18:16  [ТС]
скажу Вам всё как есть,изначально мне нужно было провести выбор из БД по возросту,эта часть кода отвечает за выбор по диапазону
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
// Если указаны неправильные данные - выход
if(!in_array($key, $key_array) or !in_array($sort, $sort_array))
    exit('Неверный формат запроса!');
if(isset($_GET['price']) and (empty($_GET['v1']) or empty($_GET['v2'])))
    exit('Пустой запрос!');
    
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
 
// Если кол-во лет заполнено - вводим его в mysql-запрос и добавляем в фильтры таблицы
if(!empty($_GET['v1']) and !empty($_GET['v2']))
{
    $where = 'WHERE `bedroom` BETWEEN ' . $_GET['v1'] . ' AND ' . $_GET['v2'];
    $values = '&v1=' . $_GET['v1'] .'&v2=' . $_GET['v2'];
}
  elseif(!empty($_GET['bedroom']))
 
{
    $where = 'WHERE `bedroom` = "' . $_GET['bedroom'] . '"';
    $values = null;
}
 
 else
{
    $where = null;
    $values = null;
}
// Запрос к БД
$query = "SELECT * FROM `users` $where $orderby";
$result = mysql_query($query) or die(mysql_error());
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc';
и v1 и v2 отвечает за поля в которые нужно вводить возраст для выбора пользователя,и вот мне нужно чтобы проводился подбор из БД я и взял эту часть скрипта но чуть его не доработал так как много чего не понятно и поэтому сдесь спрашую и прошу помощи как можно решить подбор из БД ч-з выпадающее меню...

Добавлено через 21 час 29 минут
Помогите мне пожалуйста разобраться в моём вопросе до конца,как мне сделать чтобы все три выпадающих списка работали как последний как bedroom
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<?
// Подключение к MySQL
$con = mysql_connect(".........",".........",".........");
if (!$con)
    die('Could not connect: ' . mysql_error());
mysql_select_db("..........", $con);
$sql = mysql_query("SET CHARACTER SET cp1251_koi8");
$bed = "";
if(isset($_GET['bedroom']))
$bedrooms = "&bedroom=".$_GET['bedroom'];
// Значения, полученные из формы
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
$key = isset($_GET['key']) ? $_GET['key'] : 'number';
 
// Разрешённые значения
$key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
$sort_array = array('asc','desc');
 
// Если указаны неправильные данные - выход
if(!in_array($key, $key_array) or !in_array($sort, $sort_array))
    exit('Неверный формат запроса!');
if(isset($_GET['price']) and (empty($_GET['v1']) or empty($_GET['v2'])))
    exit('Пустой запрос!');
    
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
 
// Если кол-во лет заполнено - вводим его в mysql-запрос и добавляем в фильтры таблицы
if(!empty($_GET['v1']) and !empty($_GET['v2']))
{
    $where = 'WHERE `bedroom` BETWEEN ' . $_GET['v1'] . ' AND ' . $_GET['v2'];
    $values = '&v1=' . $_GET['v1'] .'&v2=' . $_GET['v2'];
}
elseif(!empty($_GET['bedroom']))
{
    $where = 'WHERE `bedroom` = "' . $_GET['bedroom'] . '"';
    $values = null;
}
else
{
    $where = null;
    $values = null;
}
 
// Запрос к БД
$query = "SELECT * FROM `users` $where $orderby";
$result = mysql_query($query) or die(mysql_error());
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc';
?>
<h1>Спальні</h1>
<h4   align= "left">
<?
$bed = mysql_query("SELECT DISTINCT `bedroom` FROM `users`") or die(mysql_error());
while($row = mysql_fetch_assoc($bed)): ?>
<br><a href="?bedroom=<?=$row['bedroom']?>"><?=$row['bedroom']?></a>
<? endwhile; ?> 
</h4>
<table align= "center" border = 1>
<tr>
<th width='50'><a href="?key=number&sort=<?=$sort . $values?>">Номер</a></th>
<th width='50'><a href="?key=city&sort=<?=$sort . $values?>">Місто</a></th>
<th width='50'><a href="?key=name&sort=<?=$sort . $values?>">Назва</a></th>
<th width='50'><a href="?key=sleeper&sort=<?=$sort . $values?>">Гостей</a></th>
<th width='50'><a href="?key=bedroom&sort=<?=$sort . $values?>">Спальні</a></th>
<th width='50'><a href="?key=price&sort=<?=$sort . $values?>">Ціна</a></th>
</th></tr>
<? while($row = mysql_fetch_assoc($result)): ?>
    <tr>
        <td><?=$row['number']?></td>
        <td><?=$row['city']?></td>
        <td><?=$row['name']?></td>
        <td><?=$row['sleeper']?></td>
        <td><?=$row['bedroom']?></td>
        <td><?=substr($row['price'],0,30)?></td>
    </tr>
<? endwhile; ?>
</table>
вот в этом примере http://dizarius.com/arta/gos.php всё работает отлично благодаря Вам как мне сделать чтобы все три выпадающих списка а именно city,sleeper,bedroom работали так как bedroom помогите пожалуйста мне решить этот пример...
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
07.09.2015, 19:57
нужен дамп базы данных, чтобы я смог скрипт запустить у себя
0
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
08.09.2015, 08:02  [ТС]
так как Вы опытный программист не сможете просмотрев скрипт подсказать как его нужно изминить чтобы все выпадающие списки работали как bedroom или создайте у себя в БД таблицу проверьте работу скрипта и помогите мне с решением этого вопроса......
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.09.2015, 19:56
Цитата Сообщение от arta42 Посмотреть сообщение
или создайте у себя в БД таблицу проверьте работу скрипта и помогите мне с решением этого вопроса......
вот для этого мне и нужен дамп базы(не всей, а только той таблицы которая используется) не хочу я ничего придумывать(имеется в виду таблица) я не понимаю, вам нужно или мне? а по большому счету, вам уже дали советы по всем вопросам.
0
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
09.09.2015, 18:55  [ТС]
Я с Вами вполне согласен что всё это нужно мне,что такое дамп мне не совсем понятно,пройдя по ссылке Вы увидите работу скрипта и под выпадающим меню таблица с БД http://dizarius.com/arta/gos.php ,вот из самого скрипта та часть которая отвечает за созданную таблицу и вывод её на экран
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
?>
<table align= "left" border = 1>
<tr>
<th width='50'><a href="?key=number&sort=<?=$sort . $values?>">Номер</a></th>
<th width='50'><a href="?key=city&sort=<?=$sort . $values?>">Місто</a></th>
<th width='50'><a href="?key=name&sort=<?=$sort . $values?>">Назва</a></th>
<th width='50'><a href="?key=sleeper&sort=<?=$sort . $values?>">Гостей</a></th>
<th width='50'><a href="?key=bedroom&sort=<?=$sort . $values?>">Спальні</a></th>
<th width='50'><a href="?key=price&sort=<?=$sort . $values?>">Ціна</a></th>
</th></tr>
<? while($row = mysql_fetch_assoc($result)): ?>
    <tr>
        <td><?=$row['number']?></td>
        <td><?=$row['city']?></td>
        <td><?=$row['name']?></td>
        <td><?=$row['sleeper']?></td>
        <td><?=$row['bedroom']?></td>
        <td><?=substr($row['price'],0,30)?></td>
    </tr>
<? endwhile; ?>
</table>
таблица состоит из 6-ти ячеек и мне нужно вывести только 3-и это города гостей и спальни и чтобы все работали так как последняя в выпадающем меню на примере http://dizarius.com/arta/gos.php
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
09.09.2015, 19:10
arta42, заинтересовал один вопрос. Если у вас есть знакомый, который учит вас PHP, почему вы задаёте эти вопросы не ему, а здесь? Я понимаю, если бы было 1-2 конкретных сложных вопроса, но когда вы спотыкаетесь на каждом клике мышкой...

И почему вы не захотели искать значение слов "дамп базы данных" в интернете? Это разве так сложно? Даже на ютубе миллион роликов на тему "как сделать дамп БД".

Я это говорю к тому, что поиск информации в интернете (и в том числе в документации) - часть работы программиста.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
09.09.2015, 19:11
Цитата Сообщение от arta42 Посмотреть сообщение
чтобы все работали так как последняя
вы писали, что нужно чтобы искало по трем параметрам, я вам ответил.
Цитата Сообщение от arta42 Посмотреть сообщение
elseif(!empty($_GET['bedroom'] && !empty($_GET['city']) && !empty($_GET['sleeper'])) { $where = "WHERE `bedroom` = '".$_GET['bedroom']."' and `city`='".$_GET['city']."' and `sleeper`='".$_GET['slipper']."'"; $values = null; }
я не понимаю, что значит, как последняя
0
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
09.09.2015, 19:27  [ТС]
Знакомый меня не учит учусь я сам и с помощью интернета,то что он мне даёт задания как решить этот вопрос он также не знает и только ищет по интернету задания а решения ищу я,как последняя это,вот пример в котором три выпадающих списка каждый из которого отвечает за ячейку из таблицы БД,http://dizarius.com/arta/gos.php перед кнопкой подбор выпадающий список содержащий информацию 300,300,8000,5400,1,2,1,1 выберите любую цыфру и нажмите на кнопку подбор и в таблице БД которая расположена ниже остаётся только лишь тот результат который содержит выбранную информацию и так должны работать все выпадающие списки для того чтобы провести точный подбор,к примеру город Золотоноша гостей 1000 спальни 3000 такой есть в БД если я выбиру к Золотоноша другие цыфры например которые подпадают под другой город чтобы не выводило результат а выводило текст такого нет в БД,когда я задавал вопрос и писал как последняя я имел ввиду последняя ячейка таблицы....
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
09.09.2015, 22:02
Лучший ответ Сообщение было отмечено arta42 как решение

Решение

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
<?php
mysql_connect("localhost", "root","");
mysql_select_db("test");
$sql = "SELECT city, sleeper, bedroom FROM users";
$result_select = mysql_query($sql);
$city = array();
$sleeper = array();
$badgoom = array();
while($res =  mysql_fetch_object($result_select)){
    $city[] = $res->city;
    $sleeper[] = $res->sleeper;
    $bedroom[] = $res->bedroom;
}
// Значения, полученные из формы
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
$key = isset($_GET['key']) ? $_GET['key'] : 'number';
 
// Разрешённые значения
$key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
$sort_array = array('asc','desc');
     
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
 
if(!empty($_POST['bedroom']) && !empty($_POST['city']) && !empty($_POST['sleeper']))
{
    $where = "WHERE `bedroom` = '".$_POST['bedroom']."' and `city`='".$_POST['city']."' and `sleeper`='".$_POST['sleeper']."'";
    $values = null;
}
else
{
    $where = null;
    $values = null;
}
 
// Запрос к БД
$query = "SELECT * FROM `users`".$where .$orderby;
$result = mysql_query($query) or die(mysql_error());
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc';
?>
<div style="width:900px;margin:30px auto">
     <form method="post">
         <div style="float:left;margin-right:20px">
         <select style= "width:200px;height:45px" name="city">
             <?php foreach($city as $c){?>
             <option value="<?php echo $c;?>"><?php echo $c;?></option>
             <?php } ?>
         </select>
         </div>
         <div style="float:left;margin-right:20px">
             <select style= "width:200px;height:45px" name="sleeper">
             <?php foreach($sleeper as $s){?>
             <option value="<?php echo $s;?>"><?php echo $s;?></option>
             <?php } ?>
         </select>
         </div>
         <div style="float:left;margin-right:20px">
             <select style= "width:200px;height:45px" name="bedroom">
             <?php foreach($bedroom as $b){?>
             <option value="<?php echo $b;?>"><?php echo $b;?></option>
             <?php } ?>
         </select>
             <input type="submit" name="sub" style= "background-color:red;width:200px;height:45px" value = "Подобрать"> 
         </div>
     </form>
</div>
<div style="clear:both;"></div>
<div style="margin-top:40px;">
    <?php if(mysql_num_rows($result)> 0){?>
    <table align= "center" border = 1>
        <tr>
        <th width='50'><a href="?key=number&sort=<?=$sort . $values?>">Номер</a></th>
        <th width='50'><a href="?key=city&sort=<?=$sort . $values?>">Місто</a></th>
        <th width='50'><a href="?key=name&sort=<?=$sort . $values?>">Назва</a></th>
        <th width='50'><a href="?key=sleeper&sort=<?=$sort . $values?>">Гостей</a></th>
        <th width='50'><a href="?key=bedroom&sort=<?=$sort . $values?>">Спальні</a></th>
        <th width='50'><a href="?key=price&sort=<?=$sort . $values?>">Ціна</a></th>
        </th></tr>
        <? while($row = mysql_fetch_assoc($result)): ?>
            <tr>
                <td><?=$row['number']?></td>
                <td><?=$row['city']?></td>
                <td><?=$row['name']?></td>
                <td><?=$row['sleeper']?></td>
                <td><?=$row['bedroom']?></td>
                <td><?=substr($row['price'],0,30)?></td>
            </tr>
        <? endwhile; ?>
    </table>
    <?php }else{?>
    <p>По вашему запросу, ничего не найдено.</p>
    <?php }?>
</div>
1
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
10.09.2015, 09:47  [ТС]
Я Вам очень благодарен всё работает так как нужно,не знаю как Вас отблагодарить,Вы мне много чего дали понять из этого скрипта и из всех Ваших сообщений и это для меня очень серьёзный урок...

Добавлено через 31 минуту
Всё работает отлично но есть одно но,извините конечно за мою наглость хочу ещё узнать как изменить эту часть скрипта чтобы после подбора выбранные данные не сбрасывались а оставались в выпадающих списках,вот как всё это работает в предыдущем примере
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$result_select = mysql_query($sql);
while($object = mysql_fetch_object($result_select)){
      if(isset($_GET['bedroom']) && $_GET['bedroom'] == $object->bedroom){
          echo "<option  value'".$object->bedroom."' selected='selected' >".$object->bedroom." </option>";
      }
      else{
          echo "<option  value'".$object->bedroom."' >".$object->bedroom." </option>";
      }
  }
echo "</select>";
$query = "SELECT bedroom, FROM users";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
echo "$row[bedroom]";
}
 
$result_select = mysql_query($sql);
как всё это сделать в последнем Вашем ответе?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
10.09.2015, 09:54
Цитата Сообщение от arta42 Посмотреть сообщение
как всё это сделать в последнем Вашем ответе?
да, как все запущено. у вас же есть пример. неужели так сложно сделать по аналогии. только вместо $_GET использовать $_POST
PHP/HTML
1
2
3
4
5
6
7
8
9
      <select style= "width:200px;height:45px" name="city">
             <?php foreach($city as $c){
             if(isset($_POST['city']) && $_POST['city'] == $c){
             ?>
             <option value="<?php echo $c;?>" selected="selected"><?php echo $c;?></option>
             <?php }else{?>
             <option value="<?php echo $c;?>"><?php echo $c;?></option>
             <?php }} ?>
       </select>
0
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
10.09.2015, 10:31  [ТС]
Я изминил гет на пост и не чего не происходит как сбрасывалось так и сбрасывается...
что тут не так
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$sql = "SELECT city, sleeper, bedroom FROM users";
$result_select = mysql_query($sql);
$city = array();
$sleeper = array();
$badgoom = array();
while($res =  mysql_fetch_object($result_select)){
    $city[] = $res->city;
    $sleeper[] = $res->sleeper;
    $bedroom[] = $res->bedroom;
}
// Значения, полученные из формы
$sort = isset($_POST['sort']) ? $_POST['sort'] : 'desc';
$key = isset($_POST['key']) ? $_POST['key'] : 'number';
 
// Значения, полученные из формы
$sort = isset($_POST['sort']) ? $_POST['sort'] : 'desc';
$key = isset($_POST['key']) ? $_POST['key'] : 'number';
// Разрешённые значения
$key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
$sort_array = array('asc','desc');
     
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
Добавлено через 2 минуты
тут та самая ситуация если я подставляю этот код к Вашему последнему изминений нет не каких
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
while($object = mysql_fetch_object($result_select)){
      if(isset($_GET['city']) && $_GET['city'] == $object->city){
          echo "<option  value'".$object->city."' selected='selected' >".$object->city." </option>";
      }
      else{
          echo "<option  value'".$object->city."' >".$object->city." </option>";
      }
  }
echo "</select>";
$query = "SELECT city, FROM users";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)){
echo "$row[city]";
}
возможно кроме гет и пост его вовсе нужно по другому переписывать?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
10.09.2015, 11:30
Лучший ответ Сообщение было отмечено arta42 как решение

Решение

как я все это выдерживаю(удивляюсь сам себе)
сколько уже разбираем код, а ты до сих пор не понимаешь что, где в нем происходит
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
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
 
mysql_connect("localhost", "root","");
mysql_select_db("test");
$sql = "SELECT city, sleeper, bedroom FROM users";
$result_select = mysql_query($sql);
//создаем массивы для хранения городов, гостей, спален
$city = array();
$sleeper = array();
$badgoom = array();
// достаем из таблицы столбцы city, sleeper, bedroom и распределяем их по массивам
while($res =  mysql_fetch_object($result_select)){
    $city[] = $res->city;
    $sleeper[] = $res->sleeper;
    $bedroom[] = $res->bedroom;
}
// далее код отвечающий за сортировку в табице вывода
// Значения, полученные из формы для сортировки
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
$key = isset($_GET['key']) ? $_GET['key'] : 'number';
 
// Разрешённые значения
$key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
$sort_array = array('asc','desc');
     
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc'; 
 
// далее код отвечающий за выбор из базы. зачем $values, я не понимаю
if(!empty($_POST['bedroom']) && !empty($_POST['city']) && !empty($_POST['sleeper']))
{
    $where = "WHERE `bedroom` = '".$_POST['bedroom']."' and `city`='".$_POST['city']."' and `sleeper`='".$_POST['sleeper']."'";
    $values = null;
}
else
{
    $where = null;
    $values = null;
}
 
$query = "SELECT * FROM `users`".$where .$orderby;
$result = mysql_query($query) or die(mysql_error());
?>
    <!--далее вывод формы с селектами-->
<div style="width:900px;margin:30px auto">
     <form method="post">
         <div style="float:left;margin-right:20px">
            <select style= "width:200px;height:45px" name="city">
                <?php foreach($city as $c){
                if(isset($_POST['city']) && $_POST['city'] == $c){
                ?>
                <option value="<?php echo $c;?>" selected="selected"><?php echo $c;?></option>
                <?php }else{?>
                <option value="<?php echo $c;?>"><?php echo $c;?></option>
                <?php }} ?>
            </select>
         </div>
         <div style="float:left;margin-right:20px">
             <select style= "width:200px;height:45px" name="sleeper">
                <?php foreach($sleeper as $s){
                if(isset($_POST['sleeper']) && $_POST['sleeper'] == $s){
                ?>
                <option value="<?php echo $s;?>" selected="selected"><?php echo $s;?></option>
                <?php }else{ ?> 
                <option value="<?php echo $s;?>"><?php echo $s;?></option>
                <?php }}?>
            </select>
         </div>
         <div style="float:left;margin-right:20px">
             <select style= "width:200px;height:45px" name="bedroom">
                <?php foreach($bedroom as $b){
                if(isset($_POST['bedroom']) && $_POST['bedroom'] == $b){ 
                ?>
                <option value="<?php echo $b;?>" selected="selected"><?php echo $b;?></option>
                <?php }else{?>
                <option value="<?php echo $b;?>"><?php echo $b;?></option>
                <?php }} ?>
             </select>
             <input type="submit" name="sub" style= "background-color:red;width:200px;height:45px" value = "Подобрать"> 
         </div>
     </form>
</div>
<div style="clear:both;"></div>
<div style="margin-top:40px;">
    <!-- далее проверяем, если есть в выборке данные выводим таблицу иначе сообщение "По вашему запросу, ничего не найдено."-->
    <?php if(mysql_num_rows($result)> 0){?>
    <table align= "center" border = 1>
        <tr>
        <th width='50'><a href="?key=number&sort=<?=$sort . $values?>">Номер</a></th>
        <th width='50'><a href="?key=city&sort=<?=$sort . $values?>">Місто</a></th>
        <th width='50'><a href="?key=name&sort=<?=$sort . $values?>">Назва</a></th>
        <th width='50'><a href="?key=sleeper&sort=<?=$sort . $values?>">Гостей</a></th>
        <th width='50'><a href="?key=bedroom&sort=<?=$sort . $values?>">Спальні</a></th>
        <th width='50'><a href="?key=price&sort=<?=$sort . $values?>">Ціна</a></th>
        </th></tr>
        <? while($row = mysql_fetch_assoc($result)): ?>
            <tr>
                <td><?=$row['number']?></td>
                <td><?=$row['city']?></td>
                <td><?=$row['name']?></td>
                <td><?=$row['sleeper']?></td>
                <td><?=$row['bedroom']?></td>
                <td><?=substr($row['price'],0,30)?></td>
            </tr>
        <? endwhile; ?>
    </table>
    <?php }else{?>
    <p>По вашему запросу, ничего не найдено.</p>
    <?php }?>
</div>
1
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
14.09.2015, 11:00  [ТС]
Большое Вам спасибо за ответ,всё работает отлично только есть одно но,города в выпадающем списке повтеряются а не должны повторяться,и при подборе городов которые повторяються должны выводится все рядки связанны с этим городом,это не происходит.....
Что нужно изменить в массиве чтобы выводились все города из БД а те что повторяются не выводились?
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
14.09.2015, 11:55
Цитата Сообщение от arta42 Посмотреть сообщение
города в выпадающем списке повтеряются
SELECT DISTINCT
0
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
14.09.2015, 12:17  [ТС]
Вот здесь они повторяются http://dizarius.com/arta/gos2.php а нужно чтобы не повторялись,что нужно изменить в этом коде чтобы города в выпадающем списку не повторялись и при подборе городов которые повторяются выводились все данные в рядок которые касаються этих городов?
допустим в примере есть города такие как Золотоноша и они повторяються 3-ри раза нужно чтобы в выпадающем списку городов этот город не повторялся ни разу был лишь один,если в БД их 5-10-ть то при подборе по этому городу все данные должны вывестись в рядок касающиесь каждого из повторяющихся городов в БД а в списку городов был этот город один лишь раз,и так с каждым городом который повторяется в БД но не в выпадающем списку....
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
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
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
 
 
mysql_connect("localhost", "root","");
mysql_select_db("test");
$sql = "SELECT city, sleeper, bedroom FROM users";
$result_select = mysql_query($sql);
//создаем массивы для хранения городов, гостей, спален
$city = array();
$sleeper = array();
$badgoom = array();
// достаем из таблицы столбцы city, sleeper, bedroom и распределяем их по массивам
while($res =  mysql_fetch_object($result_select)){
    $city[] = $res->city;
    $sleeper[] = $res->sleeper;
    $bedroom[] = $res->bedroom;
}
// далее код отвечающий за сортировку в табице вывода
// Значения, полученные из формы для сортировки
$sort = isset($_GET['sort']) ? $_GET['sort'] : 'desc';
$key = isset($_GET['key']) ? $_GET['key'] : 'number';
 
// Разрешённые значения
$key_array = array('number', 'city', 'name', 'sleeper', 'bedroom', 'price');
$sort_array = array('asc','desc');
     
// Часть SQL-запроса - фильтр
$orderby = " ORDER BY $key $sort";
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc'; 
 
// далее код отвечающий за выбор из базы. зачем $values, я не понимаю
if(!empty($_POST['bedroom']) && !empty($_POST['city']) && !empty($_POST['sleeper']))
{
    $where = "WHERE `bedroom` = '".$_POST['bedroom']."' and `city`='".$_POST['city']."' and `sleeper`='".$_POST['sleeper']."'";
    $values = null;
}
else
{
    $where = null;
    $values = null;
}
 
$query = "SELECT * FROM `users`".$where .$orderby;
$result = mysql_query($query) or die(mysql_error());
?>
    <!--далее вывод формы с селектами-->
<div style="width:900px;margin:30px auto">
     <form method="post">
         <div style="float:left;margin-right:20px">
            <select style= "width:200px;height:45px" name="city">
                <?php foreach($city as $c){
                if(isset($_POST['city']) && $_POST['city'] == $c){
                ?>
                <option value="<?php echo $c;?>" selected="selected"><?php echo $c;?></option>
                <?php }else{?>
                <option value="<?php echo $c;?>"><?php echo $c;?></option>
                <?php }} ?>
            </select>
         </div>
         <div style="float:left;margin-right:20px">
             <select style= "width:200px;height:45px" name="sleeper">
                <?php foreach($sleeper as $s){
                if(isset($_POST['sleeper']) && $_POST['sleeper'] == $s){
                ?>
                <option value="<?php echo $s;?>" selected="selected"><?php echo $s;?></option>
                <?php }else{ ?> 
                <option value="<?php echo $s;?>"><?php echo $s;?></option>
                <?php }}?>
            </select>
         </div>
         <div style="float:left;margin-right:20px">
             <select style= "width:200px;height:45px" name="bedroom">
                <?php foreach($bedroom as $b){
                if(isset($_POST['bedroom']) && $_POST['bedroom'] == $b){ 
                ?>
                <option value="<?php echo $b;?>" selected="selected"><?php echo $b;?></option>
                <?php }else{?>
                <option value="<?php echo $b;?>"><?php echo $b;?></option>
                <?php }} ?>
             </select>
             <input type="submit" name="sub" style= "background-color:red;width:200px;height:45px" value = "Подобрать"> 
         </div>
     </form>
</div>
<div style="clear:both;"></div>
<div style="margin-top:40px;">
    <!-- далее проверяем, если есть в выборке данные выводим таблицу иначе сообщение "По вашему запросу, ничего не найдено."-->
    <?php if(mysql_num_rows($result)> 0){?>
    <table align= "center" border = 1>
        <tr>
        <th width='50'><a href="?key=number&sort=<?=$sort . $values?>">Номер</a></th>
        <th width='50'><a href="?key=city&sort=<?=$sort . $values?>">Місто</a></th>
        <th width='50'><a href="?key=name&sort=<?=$sort . $values?>">Назва</a></th>
        <th width='50'><a href="?key=sleeper&sort=<?=$sort . $values?>">Гостей</a></th>
        <th width='50'><a href="?key=bedroom&sort=<?=$sort . $values?>">Спальні</a></th>
        <th width='50'><a href="?key=price&sort=<?=$sort . $values?>">Ціна</a></th>
        </th></tr>
        <? while($row = mysql_fetch_assoc($result)): ?>
            <tr>
                <td><?=$row['number']?></td>
                <td><?=$row['city']?></td>
                <td><?=$row['name']?></td>
                <td><?=$row['sleeper']?></td>
                <td><?=$row['bedroom']?></td>
                <td><?=substr($row['price'],0,30)?></td>
            </tr>
        <? endwhile; ?>
    </table>
    <?php }else{?>
    <p>По вашему запросу, ничего не найдено.</p>
    <?php }?>
</div>
0
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,909
14.09.2015, 12:33
Цитата Сообщение от arta42 Посмотреть сообщение
что нужно изменить в этом коде чтобы города в выпадающем списку не повторялись
Я уже дал конкретный ответ.
Цитата Сообщение от Jodah Посмотреть сообщение
SELECT DISTINCT
Изучите, что делает DISTINCT, и добавьте его в запрос. Нет желания писать код за вас.

Цитата Сообщение от arta42 Посмотреть сообщение
если в БД их 5-10-ть то при подборе по этому городу все данные должны вывестись в рядок
Через форму передаёте город и выбираете данные из БД. Простейшая задача, которая в этой теме повторялась 1001 раз.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
14.09.2015, 17:59
Цитата Сообщение от arta42 Посмотреть сообщение
а нужно чтобы не повторялись,что нужно изменить в этом коде чтобы города в выпадающем списку не повторялись и при подборе городов которые повторяются выводились все данные в рядок которые касаються этих городов?
по большому счету, для начала нужно правильно спроектировать базу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.09.2015, 17:59
Помогаю со студенческими работами здесь

Выпадающее меню как в ХР
При нажатии ПКМ на проге на панели задач. Знаю можно зажать shift и нажать пкм, но хочется чтоб без шифта постоянно так было. Можно ли?

Как сделать выпадающее меню
Ребят а как сделать выпадающие меню, для категории &quot;Достопримечательности&quot; &lt;!DOCTYPE HTML&gt; &lt;html&gt; &lt;head&gt; ...

Как развернуть выпадающее меню?
У кнопки есть выпадающее меню, не могу его развернуть.. подскажите, это только событием можно или у него какой-то свой метод для этого...

Как сделать выпадающее меню
Можно ли сделать выпадающее меню как на скрине без JS ? Здесь при выборе элемента, как в выпадающем меню он попадает наверх.

Как сделать выпадающее меню?
Помогите пожалуйста новичку, сделать выпадающее меню &lt;div id=&quot;menu&quot; class=&quot;menu&quot;&gt; &lt;ul&gt; &lt;li&gt;&lt;a...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru