1

Тема: Выпадающий список и База Данных

возникла такая проблема (уже несколько дней мучаюсь)...есть у меня БД, в которой есть таблицы: grupps-в ней содержатся названия учебных групп , studs-соответсвенно список студентов и balls-оценки, в ней происходит связка пердыдущих таблиц...нужно создать выпадающий список на странице ,чтобы выбирался номер группы, а ниже появлялся список выбранной группы...выпадающий список я вроде бы как создал:
$query="select distinct NomGrup, balls.Id_grup from
grupps,balls where grupps.Id_grup=balls.Id_grup";//запрос
$result=mysql_query($query);
echo "<SELECT NAME=''>";
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
$nomgrup=$row["NomGrup"];
$grupps[]='$nomgrup';
echo"<option value='first'>$nomgrup</option>";}
echo"</SELECT>";

И вывод студентов в виде таблицы я тоже сделал, но только всех студентов, без привязок к определенной группе...подскажите пожалуйста как можно сделать это...

2

Re: Выпадающий список и База Данных

У вас затруднения с тем как отправить идентификатор группы скрипту, чтобы выбрать по нему список студентов, или затруднения с обработкой уже принятых данных?

По идее, все выпадающие списки у вас должны находиться внутри тега <form> и при определенном выборе вы должны либо по клику на кнопке, либо при выборе из списка (с помощью JavaScript) отправлять форму на обработку скрипту, где по переданным в POST массиве данным сможете построить соответствующие списки.

3

Re: Выпадающий список и База Данных

У вас затруднения с тем как отправить идентификатор группы скрипту, чтобы выбрать по нему список студентов, или затруднения с обработкой уже принятых данных?

По идее, все выпадающие списки у вас должны находиться внутри тега <form> и при определенном выборе вы должны либо по клику на кнопке, либо при выборе из списка (с помощью JavaScript) отправлять форму на обработку скрипту, где по переданным в POST массиве данным сможете построить соответствующие списки.

затруднения с тем,  как отправить идентификатор группы скрипту, чтобы выбрать по нему список студентов...

4

Re: Выпадающий список и База Данных

Попробуйте разобрать этот код и использовать его для сбора выпадающих списков.

<form method="post" action="">
<select name="NomGrup">
<option value="1">Группа №1</option>
</select>
<?php
if (isset($_POST['NomGrup'])) {
  $sql = 'SELECT * FROM `table_name` WHERE `NomGrup` = ' . $_POST['NomGrup'];
  // и т. д.
}
?>
<input type="submit" value="Отправить" />
</form>

5

Re: Выпадающий список и База Данных

а выпадающий список разве нельзя просто собрать так:
echo "<SELECT NAME=''>";
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
$nomgrup=$row["NomGrup"];
echo"<option value='first'>$nomgrup</option>";}
echo"</SELECT>";

В нем отражаются номера групп уже. А потом применять условие if (isset($_POST['NomGrup'])) и т.д. Или так делать нельзя?

И как я понял в условии if (isset($_POST['NomGrup'])) {
  $sql = 'SELECT * FROM `table_name` WHERE `NomGrup` = ' . $_POST['NomGrup'];
  // и т. д.
}
и должен происходить сам процесс вывода студентов?

6

Re: Выпадающий список и База Данных

VitoS сказал:

а выпадающий список разве нельзя просто собрать так

Можно и нужно. Я сократил, чтобы была видна общая картина. Обратите внимание на детали формирования:
<select name="NomGrup">
<option value="1">Группа №1</option>

VitoS сказал:

А потом применять условие if (isset($_POST['NomGrup'])) и т.д. Или так делать нельзя?

Все верно, так и надо.

VitoS сказал:

И как я понял в условии if (isset($_POST['NomGrup']))
и должен происходить сам процесс вывода студентов?

Совершенно верно.

7 (изменено: VitoS, 2011-02-20 19:52:51)

Re: Выпадающий список и База Данных

Что-то не работает(((...вот что у меня получилось:

echo '<form method="post" action="">';
echo "<SELECT NAME='NomGrup'>";
while($row=mysql_fetch_array($result,MYSQL_ASSOC)){
$nomgrup=$row["NomGrup"];
echo"<option value='first'>$nomgrup</option>";} // Почему value='first' везде? Это не правильно.
echo"</SELECT>";
if (isset($_POST[$nomgrup])) { // Здесь должна быть проверка значения выпадающего списка $_POST['NomGrup']. Соответственно, все, что ниже надо исправить.
  $query1 = 'SELECT distinct Fio,Adres,Phone,balls.Id_stud,NomGrup
from studs,balls,grupps WHERE studs.Id_stud=balls.Id_stud
AND grupps.Id_grup=balls.Id_grup AND NomGrup = ' . $_POST[$nomgrup];

$result1=mysql_query($query1);
if (!$result1)
{
  die ("Невозможно исполнить запрос к базе данных:<br/>".mysql_error());
}
while($row1=mysql_fetch_array($result1,MYSQL_ASSOC)){

$studs=$row1["Fio"];
$adres=$row1["Adres"];
$phone=$row1["Phone"];

echo "<tr>";
echo"<td>$studs</td>";
echo"<td>$adres</td>";
echo"<td>$phone</td>";

echo "</tr>";
}
}
mysql_close($connection);
echo "</form>";
echo '<input type="submit" value="Go!" />'; // Необходимо поместить внутрь тега <form>
?>

подскажите пожалуйста, где я ошибся

8

Re: Выпадающий список и База Данных

VitoS сказал:

подскажите пожалуйста, где я ошибся

Прокомментировал по тексту.

9

Re: Выпадающий список и База Данных

echo"<option value='first'>$nomgrup</option>";} // Почему value='first' везде? Это не правильно.
Здесь лучше записать  "<option value=''>$nomgrup</option>"?

if (isset($_POST[$nomgrup])) { // Здесь должна быть проверка значения выпадающего списка $_POST['NomGrup']. Соответственно, все, что ниже надо исправить.

а тут изменить здесь if (isset($_POST['NomGrup'])) и в запросе?  $query1 = 'SELECT distinct Fio,Adres,Phone,balls.Id_stud,NomGrup
from studs,balls,grupps WHERE studs.Id_stud=balls.Id_stud
AND grupps.Id_grup=balls.Id_grup AND NomGrup = ' . $_POST['NomGrup'];

ну а echo '<input type="submit" value="Go!" />'; я поместил внутри тега <form>

а остальное все верно??..а то я изменил это, но все равно не работает...

10

Re: Выпадающий список и База Данных

Если список студентов надо выбирать по полю NomGrup, то должно быть так:

echo "<option value='$nomgrup'>$nomgrup</option>";

Остальное вроде верно. Пробуйте.

11

Re: Выпадающий список и База Данных

Исправил...появляется ошибка: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3...что это может быть?

12

Re: Выпадающий список и База Данных

VitoS сказал:

Исправил...появляется ошибка

Какой запрос на 3 строке в скрипте?

13

Re: Выпадающий список и База Данных

<?php
include('db_login.php');
$connection=mysql_connect($db_host,$db_username,$db_password);
mysql_query('SET NAMES utf8');

если я не ошибся то вот он...или надо 3ю строку самой страницы?но там просто тэг <head>

14

Re: Выпадающий список и База Данных

а вот запросы $query="select * from grupps"; и $query1 = 'SELECT distinct Fio,Adres,Phone,balls.Id_stud,NomGrup
from studs,balls,grupps WHERE studs.Id_stud=balls.Id_stud
AND grupps.Id_grup=balls.Id_grup AND NomGrup = ' . $_POST['NomGrup'];

но они не в 3 строке скрипта

15 (изменено: VitoS, 2011-02-21 11:58:25)

Re: Выпадающий список и База Данных

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

16

Re: Выпадающий список и База Данных

VitoS сказал:

но в выпадющем списке отражается самая первая группа...подскажите пожалуйста как это можно исправить

if (isset($_POST['NomGrup']) && $_POST['NomGrup'] == $row["NomGrup"]) {
  echo "<option value='$nomgrup' selected="selected">$nomgrup</option>";
} else {
  echo "<option value='$nomgrup'>$nomgrup</option>";
}

17

Re: Выпадающий список и База Данных

Спасибо огромное за помощь! все заработало!