Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
arakul
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
1

Выборка информации из бд по нажатию на ссылку

08.01.2016, 10:55. Просмотров 845. Ответов 11
Метки нет (Все метки)

Доброе утро. Вообщем, такая задача. Есть несколько ссылок на сайте с разными жанрами музыки. Как сделать так, чтобы по нажатию на ссылку , например, с жанром блюз на страницу выводились все песни жанра блюз из бд ? Или по нажатию на ссылку с жанром джаз выводились все джазовые песни ?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2016, 10:55
Ответы с готовыми решениями:

сортировка по нажатию на ссылку
всем привет, необходим код для сортировки данных в столбце таблицы чтобы по...

сортировка по нажатию на ссылку 2
всем привет, необходим код для сортировки данных в столбце таблицы чтобы по...

Выборка из БД по нажатию на checkbox
Помогите с решением задачи: Делаю интернет-магазин, есть список товаров, и...

Добавляем ссылку по нажатию (vk метод)
Приветствую, тут увидел интересную штуку и не знаю как ее воплотить на сайте...

Удалить запись из БД по нажатию на ссылку
Добрый день, Форумчане На сайте есть форма и вывод из таблицы БД, где по...

11
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1738 / 1281 / 579
Регистрация: 12.01.2011
Сообщений: 5,082
08.01.2016, 11:03 2
в таблице есть поле chanr в него добавляете категорию (bluz,djaz) и т.п и потом делаете выборку.
PHP
1
$query = $link->query("SELECT * FROM `music ` WHERE `chanr` = bluz ");
0
arakul
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
08.01.2016, 11:09  [ТС] 3
То есть, в таблицу, где хранится вся музыка блюз в поле chanr вписать bluz, в переменую $link поместить ссылку, на которую я буду нажимать и написать тот код ?
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1738 / 1281 / 579
Регистрация: 12.01.2011
Сообщений: 5,082
08.01.2016, 11:48 4
У вас в одной таблице может быть и блюз и джаз просто поле будет chanr, вы как бы ставите где блюз блюз где джаз джаз и потом по этому полю делаете выборку.
Цитата Сообщение от arakul Посмотреть сообщение
в переменую $link поместить ссылку
Нет . $link это объект, подключении в базу данных
PHP
1
$link  = mysqli_connect ("имя хоста","имя пользователя","пароль","имя базы данных");
Добавлено через 10 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
if(isset($_POST['bluz'])) {
$query = $link->query("SELECT * FROM `music ` WHERE `chanr` = bluz ");
while($row = $query->fetch_array()){
//тут поля из таблицы выводим
echo $row['Поле из таблицы1'];
echo $row['Поле из таблицы2'];
}
}
if(isset($_POST['djaz'])) {
//по аналогии только WHERE `chanr` = djaz
$query = $link->query("SELECT * FROM `music ` WHERE `chanr` = djaz ");
}
HTML5
1
2
3
4
<form method="POST" action="">
<input type = "submit" name="bluz" value="Блюз">
<input type = "submit" name="djaz" value ="Джаз">
</form>
1
arakul
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
08.01.2016, 12:00  [ТС] 5
Я такого поля не нашел. Может поле char ?
0
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1738 / 1281 / 579
Регистрация: 12.01.2011
Сообщений: 5,082
08.01.2016, 12:20 6
Это не тип, а имя поля.
0
arakul
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
08.01.2016, 12:26  [ТС] 7
Не так вас понял) Спасибо за совет.
0
arakul
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
09.01.2016, 13:34  [ТС] 8
Сделал я как вы сказали, только слегка поменял.
Теперь выдаёт ошибку.
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\vibor_janra.php on line 46 Ошибка: Unknown column 'bluz' in 'where clause'
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?
mysql_query ("set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
ini_set('display_errors','On');
error_reporting(E_ALL|E_STRICT);
$db="syte";
$connect = mysql_connect("localhost", "root", "")or die;
mysql_select_db($db);
if(isset($_POST['bluz'])) {
$result = mysql_query("SELECT * FROM `music` WHERE `Жанр` = bluz ");
while($row = mysql_fetch_array($result)or die('Ошибка: ' . mysql_error()));{
if ($row['Ссылка'] != ""&&file_exists("music/".$row['Ссылка'])) 
{ 
$muz='music/'.$row['Ссылка']; 
$janr=$row['Жанр']; 
echo $row['Название'];
echo $row['$link'];
echo' <h3>'.$janr.'</h3><audio src='.$muz.' controls></audio><p><a href="'.$muz.'" download>Скачать файл</a>';
}}}
?>
HTML5
1
2
3
4
<h2 align=center>Выберите жанр</h2>
<form method="POST" action="vibor_janra.php">
<input type = "submit" name="bluz" value="Блюз">
</form>
0
Миниатюры
Выборка информации из бд по нажатию на ссылку  
Azdeman
Фрилансер
Эксперт HTML/CSSЭксперт PHP
1738 / 1281 / 579
Регистрация: 12.01.2011
Сообщений: 5,082
09.01.2016, 15:35 9
Лучший ответ Сообщение было отмечено arakul как решение

Решение

Цитата Сообщение от arakul Посмотреть сообщение
$result = mysql_query("SELECT * FROM `music` WHERE `Жанр` = bluz ");
попробуйте так bluz добавить в ' '
PHP
1
$result = mysql_query("SELECT * FROM `music` WHERE `Жанр` = 'bluz'");
1
arakul
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
09.01.2016, 15:49  [ТС] 10
Ставил - всё равно ошибка.
0
arta42
0 / 0 / 0
Регистрация: 15.07.2015
Сообщений: 138
09.01.2016, 17:45 11
Здравствуйте,подскажите пожалуйста что нужно изменить в этом коде для того чтобы после выбора из выпадающего списка города,гости или спальни по нажатию на кнопку подбор результат был проведён в таблице и сортировка работала а не работала только выборка???
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
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
<?php
    error_reporting(E_ALL);
     
 mysql_connect("localhost", "", "");
$sql = mysql_query("SET CHARACTER SET cp1251_koi8");
mysql_select_db("");    
    // если есть $_POST, формируем WHERE для запроса
    $where = '';
    if (!empty($_POST['bedroom'])){
        if ($_POST['bedroom'] != 'Все спальни'){
            $where .= (empty($where)?'':' and ')."`bedroom` = '".$_POST['bedroom']."'ORDER BY bedroom ASC ";
    
        }
    }
    if (!empty($_POST['city'])){
        if ($_POST['city'] != 'Все города'){
         $where .= (empty($where)?'':' and ')."`city` = '".$_POST['city']."'ORDER BY city ASC ";
 
        }
     
    }
    if (!empty($_POST['sleeper'])){
        if ($_POST['sleeper'] != 'Все гости'){
            $where .= (empty($where)?'':' and ')."`sleeper` = '".$_POST['sleeper']."'ORDER BY sleeper ASC ";
 
        }
    }
    $sql = "SELECT * FROM `users`". (empty($where)?'':' WHERE '.$where);
    $result = mysql_query($sql);
    while($res =  mysql_fetch_object($result)){
        $city[] = $res->city;
        $sleeper[] = $res->sleeper;
        $bedroom[] = $res->bedroom;
        $number[] = $res->number;
        $name[] = $res->name;
        $price[] = $res->price;
    }
    ?>
<?
// Подключение к MySQL
$con = mysql_connect("localhost","","");
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 = "";
 
$query ="SELECT * from `users` $where $orderby";
 
$result = mysql_query($query) or die(mysql_error());
 
// Меняем сортировку для правильного вывода в таблице
$sort = $sort == 'asc' ? 'desc' : 'asc';
?><!--далее вывод формы с селектами-->
    <h1>Гостинница</h1>
    <h1 style="background-color:0000ff; padding:40px">
        <form method="post">
            <div style="float:left;margin-right:20px">
                <select style= "width:200px;height:45px" name="city">
                    <option>Все города</option>
                    <?PHP
                        $city_sel = array_unique($city);
                        foreach($city_sel 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">
                    <option>Все гости</option>
                 <?PHP
                        $sleeper_sel = array_unique($sleeper);
                        foreach($sleeper_sel 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">
                    <option>Все спальни</option>
     
                    <?PHP
                        $bedroom_sel = array_unique($bedroom);
                        foreach( $bedroom_sel 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>
</select>
    </h1>
    </form>
    </div>
<?php
header("Content-Values: text/html; SET CHARACTER SET cp1251_koi8");
error_reporting(E_ALL);
 
$SQLHost    =   "localhost";
$SQLDB      =   "";
$SQLUser    =   "";
$SQLPassw   =   "";
     
mysql_connect($SQLHost, $SQLUser, $SQLPassw);
$sql = mysql_query("SET CHARACTER SET cp1251_koi8");
mysql_select_db($SQLDB);
 
if ( empty($_GET['orderby']) ) {
    $orderby = 'number';
} else {
    $orderby = $_GET['orderby'];
}
 
if ( empty($_GET['sortvalues']) ) {
    $sortValues = 'ASC';
    $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
 
} else if ( $_GET['sortvalues'] == 'ASC' ) {
    $sortValues = 'ASC';
    $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
} else if ( $_GET['sortvalues'] == 'DESC' ) {
    $sortValues = 'DESC';
    $sqlQuery = "SELECT * FROM users ORDER BY " . $orderby . " " . $sortValues . "";
}
 
$result = mysql_query($sqlQuery);
$dataArray = array();
$i=0;
while ($res =  mysql_fetch_array($result)) {
    $dataArray[$i]['number'] = $res['number'];
    $dataArray[$i]['city'] = $res['city'];
    $dataArray[$i]['name'] = $res['name'];
    $dataArray[$i]['sleeper'] = $res['sleeper'];
    $dataArray[$i]['bedroom'] = $res['bedroom'];
    $dataArray[$i]['price'] = $res['price'];
    $i++;
}
 
 
$sortValues = ($sortValues == 'ASC') ? $sortValues = 'DESC' : $sortValues = 'ASC';
 
?>   
 
</div>
    <br />
    <a href="?">Сортировка по умолчанию ( по номеру|по возрастанию )</a>
    <br />
    <a href="?orderby=number&sortvalues=<?php echo $sortValues?>">По номеру</a>
    <br />
    <a href="?orderby=price&sortvalues=<?php echo $sortValues?>">По цене</a>
    <br />
<div style="clear:both;"></div>
<div style="margin-top:40px;">
 <!-- далее проверяем, если есть в выборке данные выводим таблицу иначе сообщение "По вашему запросу, ничего не найдено."-->
        <?PHP if($city){?>
            <table align= "center" border = 1>
                        <tr>
                        <th width="50"><a href="?orderby=number&sorttype=<?php echo $sortType?>">Номер</a></th>
                        <th width='50'><a href="?orderby=city&sorttype=<?php echo $sortType?>">Місто</a></th>
                        <th width='50'><a href="?orderby=name&sorttype=<?php echo $sortType?>">Назва</a></th>
                        <th width='50'><a href="?orderby=sleeper&sorttype=<?php echo $sortType?>">Гостей</a></th>
                        <th width='50'><a href="?orderby=bedroom&sorttype=<?php echo $sortType?>">Спальні</a></th>
                        <th width='50'><a href="?orderby=price&sorttype=<?php echo $sortType?>">Ціна</a></th>
                    </tr>
                    
                <?php foreach ( $dataArray as $num=>$numArray ) { ?>
                    <tr>
                        <td><?php echo $dataArray[$num]['number']?></td>
                        <td><?php echo $dataArray[$num]['city']?></td>
                        <td><?php echo $dataArray[$num]['name']?></td>
                        <td><?php echo $dataArray[$num]['sleeper']?></td>
                        <td><?php echo $dataArray[$num]['bedroom']?></td>
                        <td><?php echo $dataArray[$num]['price']?></td>
                    </tr>
            <? } ?>
            </table>
        <?PHP } else {?>
            <p>По вашему запросу, ничего не найдено.</p>
        <?PHP }?>
    </div>
0
arakul
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
10.01.2016, 11:57  [ТС] 12
Поменял кавычки, теперь выводит только слово ошибка и всё.

Добавлено через 14 минут
Всё, разобрался. Спасибо большое.
0
10.01.2016, 11:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.01.2016, 11:57

Изменить значение по нажатию на ссылку
Есть тема, таблица themes поле status равно открыта. Есть ссылка, по нажатию...

Выборка из select по нажатию кнопки
Народ прошу помощи! Я делаю проект и столкнулся с одной проблемкой, у меня есть...

Удаление строки из базы по нажатию на ссылку
Добрый день, Форумчане Мучаюсь второй день, не могу удалить данные из...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru