Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.54/24: Рейтинг темы: голосов - 24, средняя оценка - 4.54
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
1

SQL запрос (combobox)

27.07.2011, 20:32. Просмотров 4340. Ответов 21
Метки нет (Все метки)

задача: при выборе в комбобоксе значения, без нажатия кнопки сабмит, должна произойти проверка в БД и вывести на екран данные.
Запрос выглядит следующем образом: "select * from `students` WHERE `subject`='fizika'"
subject здесь подставлено в ручную, а нужно чтобы подставлялось значение из комбобокса
Подсказите как правильно запрос составить и как передать значения из комбобокса без кнопки?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2011, 20:32
Ответы с готовыми решениями:

Добавление в SQL запрос данных из Combobox
Есть таблица "cars" с такими столбцами car_id, owner_id, number, time_period,...

Как в sql запрос вставить еще один запрос правильно?
Есть длинный запрос, в котором можете даже не разбираться если не хотите, но...

Переделать SQL запрос в запрос RedBeanPHP
В общем пишу поиск по таблице, есть готовое решение, но в SQL, возникла идея...

Запрос SQL
Не могу понять почему не записывает в таблицу сведения((( с БД соединяет,...

SQL запрос
Народ, помогите, всю голову сломал уже.... Есть таблица: ID Name Ref-id и...

21
D@rkD@iver
112 / 112 / 13
Регистрация: 01.10.2008
Сообщений: 876
27.07.2011, 20:34 2
юзай JavaScript
на onSelect в невидимый iframe запроси php страницу которая и сделает этот запрос
0
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
27.07.2011, 20:59  [ТС] 3
Если покажешь как, буду тебе признателен, и как правильно запрос написать, чтобы подставлял выбранное значение

Добавлено через 15 минут
С обработчиком события вроде разобрался: onchange="if (this.selectedIndex) this.form.submit()"
А с запросом правильным кто-нить поможет?
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
27.07.2011, 21:20 4
Код в студию, разберемся)
0
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
27.07.2011, 21:30  [ТС] 5
PHP
1
2
3
4
5
6
7
8
function getUsers()
{
<?php
$rez=aq("select * from `students` WHERE `classes`='$_POST[lang]'");
return $rez;
}
sajax_export("getUsers");
?>
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
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
<center>
 
<form method="post" name="send" action="combo">
<select name="lang" size="1" onchange="if (this.selectedIndex) this.form.submit()">
<option value="php" id="1">php</option>
<option value="c++" id="2">c++</option>
<option value="java" id="3">java</option>
<option value="asp" id="4">asp</option>
<option value="c#" id="5">c#</option>
</select>
 
</form>
</center>
 
<script>
 
x_getUsers(out);
function show(a){
    $('#contacts').html("");
        tpl=loadT("#userlist");
        for(i in a){
            tpl.replace("id",a[i]["id"]);
            tpl.replace("name",a[i]["name"]);
    
            
 
            
            $('#contacts').append(tpl.template);
            tpl.next();
        }
    }   
    x_getUsers(show);
    setInterval("x_getUsers(show);",1000);
 
 
</script>
 
<textarea id=userlist style=display:none;>
<tr>
            <td>
                {key:id}
            </td>
 
            <td>
                {key:name}
            </td>
 
        
 
            
        </tr>
 
</textarea>
 
<center>
<b><font color=red>AJAX</font></b>
<table border=1 style="border-color:#F6358A;">
    <tbody id="contacts">
        
 
    </tbody>
</table>
</center>
Как-то так, но не получается то, что мне надо! PS: Использую АЯКС, т.к. надо без перезагрузки
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
27.07.2011, 21:44 6
Файл combo.php:
$rez = @mysql_query("select * from `students`");
$row = @mysql_fetch_array($rez);

Файл с HTML формой:
<form method="post" name="send" action="combo.php">
<select name="lang" size="1" onchange="if (this.selectedIndex) this.form.submit()">
<option value=".$row['id'].">.$row['lang'].</option>
</select>
</form>

Примерно вот так, не будет получаться пиши.
0
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
27.07.2011, 21:57  [ТС] 7
Дело в том что я пишу скажем так на самописном движке, кароче говоря у меня ХТМЛ код должен быть в ХТМЛ фаиле, а ПХП - в ПХП фаиле, поетому так не прокатит, и aq у меня заменяет mysql_query i mysql_fetch_array
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
27.07.2011, 22:21 8
Я думал, я один усложняю себе жизнь, однако нет))
На самом деле, мне кажется, таким путём невозможно реализовать отправку формы, ибо html это html, а php это php, можешь конечно в html файле взять переменные в <? ?>, но как я понимаю, ты не этого добиваешься, по всей видимости тут нужно что-то типа JS вмешивать надо, чтобы он орабатывал html форму)
0
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
27.07.2011, 22:32  [ТС] 9
)) Ну ок с етим буду разбираться, а как бы ты оформил SQL запрос? SELECT * FROM `students` WHERE....(а вот дальше у меня не срабатывает, нужно чтобы отобразилось то, что выбрали в комбобохе),т.е. к примеру выбрали С++ и отображаются те студенты, которые учат С++
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
27.07.2011, 22:35 10
Ок, начнем с того, у тебя 2 таблицы или одна?)
0
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
27.07.2011, 22:38  [ТС] 11
У меня одна таблица, но ето неправилно я знаю, тут М:М идёт и нужно было связать их, но я спрашивал здесь на форуме как в MySQL связывать таблицы, никто вразумительного ответа не дал, поетому в однои таблице всё
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
27.07.2011, 22:49 12
Дорогой друг, ничего не надо связывать, всё на самом деле проще, чем кажется, во второй таблице ты создай колонку например lang_id и каждому студенту пропиши ид того языка, который он изучает, иды языков ты хранишь в первой таблице, а потом делаешь так
if(!empty($_POST['send'])
{
$res = mysql_query("select * from `students` WHERE `lang_id`='$_POST[send]'");
while($row = mysql_fetch_array($res))
{
echo $row['название столбца с именами студентов']."<br>";
}
}
Для вывода языков в список тоже так же используй цикл while
1
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
27.07.2011, 22:58  [ТС] 13
мм а как же без связей, окей ща попробую твой вариант
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
27.07.2011, 22:59 14
проверял лично, всё работает)
1
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
27.07.2011, 23:18  [ТС] 15
что-то не пашет.... Table1: id,name_of_student, langs,id_langs Table2: id_langs или как ты имел ввиду?
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
28.07.2011, 05:49 16
Table 1: id, lang
1 c++
2 java

Table 2: id, name_of_student, id_lang
1 Петя 1(с++ этот у нас будет изучать)
2 Ваня 1(этот тоже будет изучать с++)
3 Дима 2(а этот будет java изучать)

Надеюсь структура понятна в id_lang ты подставляешь значение id из первой таблицы
if(!empty($_POST['send'])
{
$res2 = mysql_query2("select * from `Table2` WHERE `lang_id`='$_POST[send]'");
while($row2 = mysql_fetch_array($res2))
{
echo $row2['name_of_student']."<br>";
}
}

в HTML форме обязательно в параметре <option value должно быть равно $row1['id']>а тут должно быть $row1['lang']</option>
$row1 взят из первого запроса, где ты вызываешь все поля таблицы Table1
1
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
28.07.2011, 11:44  [ТС] 17
Вообщем я сеичас остановилса пока на однои таблице, так как я говорил узе, щто не могу пихать хтмл код в пхп, вот:
получается такая фигня:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
<form method="post" name="send" >
 
<select name="classeswe" size="1" >
<option  value="x" >x</option>
<option  value="y" >y</option>
<option  value="h">h</option>
<option  value="z" >z</option>
<option  value="a" >a</option>
</select>
 
<input type="submit" name="send222" value="send">
 
</form>
PHP
1
$rez=q2("select * from `students` WHERE `classes`='$_POST[classeswe]'");
Не понимаю, вроде бы всё правильно но не срабатывает
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
28.07.2011, 12:19 18
как оно по твоему сработает, если у тебя не выведены переменные в <option value='Переменная с идом языка'>Переменная с именем языка</option>
Иначе не получится без вмешательства других языков
1
androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 773
28.07.2011, 12:45  [ТС] 19
но если с инпут таип текст мы передаём значения, мы же обходимся там без ИД, достаточно написат имя формы...Я просто не могу вписать в хтмл код, так как ты предложил, поетому пробую чуть подругому
0
Pandatek
22 / 20 / 0
Регистрация: 26.07.2011
Сообщений: 125
28.07.2011, 12:59 20
Тогда смысл от базы данных?
выводишь с помощью echo массив $_POST['classeswe'] и всё, но оно не будет работать так как хочешь ты, оно не будет просить информацию с базы данных
1
28.07.2011, 12:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2011, 12:59

SQL запрос
Здравствуйте уважаемые! Как при помощи php выполнить файл запрос с разрешением...

SQL запрос
всем привет! У меня есть форма, на ней 4 текстовых поля(Улица, Фамилия, Имя,...

SQL запрос
Сегодня столкнулся вот с такой фишкой: ...


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

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

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