Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.88/33: Рейтинг темы: голосов - 33, средняя оценка - 4.88
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782

SQL запрос (combobox)

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

Студворк — интернет-сервис помощи студентам
задача: при выборе в комбобоксе значения, без нажатия кнопки сабмит, должна произойти проверка в БД и вывести на екран данные.
Запрос выглядит следующем образом: "select * from `students` WHERE `subject`='fizika'"
subject здесь подставлено в ручную, а нужно чтобы подставлялось значение из комбобокса
Подсказите как правильно запрос составить и как передать значения из комбобокса без кнопки?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.07.2011, 20:32
Ответы с готовыми решениями:

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

SQL и ComboBox в Delphi. Нужно чтобы при выборе специальности в комбобоксе это значение вносилось в SQL запрос
procedure TForm3.Button2Click(Sender: TObject); begin try ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT Абитуриент.фамилия,...

Подставить значение из combobox в sql-запрос
Добрый день. Не являясь знатоком C#, все же пробую написать простое приложение для добавления записей(строк) в SQL базу данных, так...

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

Добавлено через 15 минут
С обработчиком события вроде разобрался: onchange="if (this.selectedIndex) this.form.submit()"
А с запросом правильным кто-нить поможет?
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
27.07.2011, 21:20
Код в студию, разберемся)
0
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
27.07.2011, 21:30  [ТС]
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
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
27.07.2011, 21:44
Файл 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
Сообщений: 782
27.07.2011, 21:57  [ТС]
Дело в том что я пишу скажем так на самописном движке, кароче говоря у меня ХТМЛ код должен быть в ХТМЛ фаиле, а ПХП - в ПХП фаиле, поетому так не прокатит, и aq у меня заменяет mysql_query i mysql_fetch_array
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
27.07.2011, 22:21
Я думал, я один усложняю себе жизнь, однако нет))
На самом деле, мне кажется, таким путём невозможно реализовать отправку формы, ибо html это html, а php это php, можешь конечно в html файле взять переменные в <? ?>, но как я понимаю, ты не этого добиваешься, по всей видимости тут нужно что-то типа JS вмешивать надо, чтобы он орабатывал html форму)
0
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
27.07.2011, 22:32  [ТС]
)) Ну ок с етим буду разбираться, а как бы ты оформил SQL запрос? SELECT * FROM `students` WHERE....(а вот дальше у меня не срабатывает, нужно чтобы отобразилось то, что выбрали в комбобохе),т.е. к примеру выбрали С++ и отображаются те студенты, которые учат С++
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
27.07.2011, 22:35
Ок, начнем с того, у тебя 2 таблицы или одна?)
0
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
27.07.2011, 22:38  [ТС]
У меня одна таблица, но ето неправилно я знаю, тут М:М идёт и нужно было связать их, но я спрашивал здесь на форуме как в MySQL связывать таблицы, никто вразумительного ответа не дал, поетому в однои таблице всё
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
27.07.2011, 22:49
Дорогой друг, ничего не надо связывать, всё на самом деле проще, чем кажется, во второй таблице ты создай колонку например 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
Сообщений: 782
27.07.2011, 22:58  [ТС]
мм а как же без связей, окей ща попробую твой вариант
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
27.07.2011, 22:59
проверял лично, всё работает)
1
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
27.07.2011, 23:18  [ТС]
что-то не пашет.... Table1: id,name_of_student, langs,id_langs Table2: id_langs или как ты имел ввиду?
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
28.07.2011, 05:49
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
Сообщений: 782
28.07.2011, 11:44  [ТС]
Вообщем я сеичас остановилса пока на однои таблице, так как я говорил узе, щто не могу пихать хтмл код в пхп, вот:
получается такая фигня:
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
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
28.07.2011, 12:19
как оно по твоему сработает, если у тебя не выведены переменные в <option value='Переменная с идом языка'>Переменная с именем языка</option>
Иначе не получится без вмешательства других языков
1
 Аватар для androidos
29 / 27 / 5
Регистрация: 07.07.2011
Сообщений: 782
28.07.2011, 12:45  [ТС]
но если с инпут таип текст мы передаём значения, мы же обходимся там без ИД, достаточно написат имя формы...Я просто не могу вписать в хтмл код, так как ты предложил, поетому пробую чуть подругому
0
27 / 24 / 1
Регистрация: 26.07.2011
Сообщений: 144
28.07.2011, 12:59
Тогда смысл от базы данных?
выводишь с помощью echo массив $_POST['classeswe'] и всё, но оно не будет работать так как хочешь ты, оно не будет просить информацию с базы данных
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2011, 12:59
Помогаю со студенческими работами здесь

Sql запрос и передача его в combobox
Здравствуйте, подскажите пожалуйста, как обратиться к полю ID второй таблицы supplers. Supplers.ID не срабатывает String...

SQL запрос с использованием Textbox и Combobox
Имеется форма добавления студента. где указывается: Фамилия, имя отчество, год рождения, военкомат, статус, факультет, курс, специальность,...

Поместить в sql запрос данные из combobox'a
Здравствуйте, не могу реализовать одну функцию в программе. Суть такая, в комбобокс содержит данные о айдишниках покупателя и при...

COMBOBOX SQL запрос для DBGRID
есть Combobobx (2 месяца) AdoQuery и DBGrid как сделать чтобы при выборе 1 значения в комбобоксе выводилась одна таблица, при выборе...

При выборе итема в ComboBox изменить SQL-запрос
Такая проблема: мне нужно чтобы при выборе итема в ComboBox шло переписка SQL. Вот что у меня есть.Проблема в том что при выборе итема в...


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

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