Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557

Выборка из базы и сделать ссылку по выбранным данным

22.03.2014, 21:04. Показов 2061. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. На главной странице (index.php) сайта есть таблица с данными. Слева есть грубо говоря "панель сортировки". Пока что это обычные страницы, такие же как и главная, отличаются от главной не большим добавлением к запросу (там где номер семестра к запросу добавляется nomer_semestra LIKE '7', там где название предмета "Методы Оптимизации" добавляется к запросу name_preddmeta='Методы Оптимизации' AND nomer_semestra LIKE '7', у группы к примеру 7-78-5 к запросу добавляется nomer_group='7-78-5 AND 'name_preddmeta='Методы Оптимизации' AND nomer_semestra='7'


Суть проблемы: Нужно не делать в виде отдельных страниц, а с помощью запроса. Собственно что-то подобное сделал. Как сделать так, чтобы при клике на них формировалась бы новая таблица? Если нужен код могу написать.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.03.2014, 21:04
Ответы с готовыми решениями:

Выборка данных в DataGridView по данным, выбранным в ComboBox
Смысл программы в том что в comobox после нажатия кнопки получить список таблиц появляется список таблиц. Потом я выбираю из списка таблицу...

Автоматическая подстановка данных таблицы по выбранным данным из списка
Здравствуйте. Нужна ваша помощь с формулой автоматической подстановки данных из таблицы для выпадающего списка....

Как сформировать диаграмму(Chart) по выбранным данным из DataGrid ?
Всем привет! Ребят очень нужна помощь! Как сформировать диаграмму(Chart) по выбранным данным (т.е. через CheckBox) данным из DataGrid ?...

21
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
22.03.2014, 21:43  [ТС]
Сделал вот так. Как сделать чтобы номер семестра выводился только один раз, и название предмета тоже один раз. Т.е. сделать так же, как было с ссылками?
Название: меню.png
Просмотров: 68

Размер: 4.8 Кб
Вот код:
PHP
1
2
3
4
5
6
7
8
9
$menu = mysql_query("SELECT * FROM `menu` ORDER BY `Nomer_group`");
echo "Семестр:<br>";
 
while($row = mysql_fetch_array($menu))
{
 echo $row['Nomer_semestra']; echo "<br>";
 echo $row['Name_predmeta']; echo "<br>";
 echo $row ['Nomer_group']; echo "<br><br>";
}
Ну и собственно вопрос о том, как сделать что-то типо ссылки и что бы при кликизапрс для таблички менялся?
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 07:41
в теории (моей личной теории) это как то так,, тройной цикл мать его,,
сразу же говорю, что не факт что это правильно , и да я его не проверял могут быть ошибки,

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$menu = mysql_query("SELECT * FROM `menu` ORDER BY `Nomer_semestra`");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['Nomer_semestra']."<br>";
$menu2 = mysql_query("SELECT * FROM `menu` WHERE Nomer_semestra=".$row['Nomer_semestra']." ORDER BY `Name_predmeta`");
while ($row2 = mysql_fetch_array($menu2)) {
echo $row2['Name_predmeta']. "<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE Name_predmeta=".$row2['Name_predmeta']."  ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo $row3 ['Nomer_group']. "<br>";
    }
  }
}
Добавлено через 1 минуту
в любом случае отпишитесь прокатило или нет, чтоб я знал

Добавлено через 9 минут
а по поводу ссылок это оч просто
генерируете гет ссылки на каждый запрос

Добавлено через 6 минут
Цитата Сообщение от lagrei66 Посмотреть сообщение
echo $row3 ['Nomer_group']. "<br>";
тут косяк нашол после $row3 пробел уберите,,

Добавлено через 15 минут
сыллка по номеру группы

PHP
1
2
3
echo "
<a href=?Nomer_group=".$row3['Nomer_group']."&Name_predmeta=".$row2['Name_predmeta']."&
Nomer_semestra=".$row['Nomer_semestra'].">".$row3 ['Nomer_group']."</a><br>";
ну и далеее в запросе таблицы которая всё это выводит
делаете примерно так

PHP
1
mysql_query("SELECT * FROM `название таблицы` WHERE nomer_group='".$_GET['Nomer_group']."' AND Name_predmeta='".$_GET['Name_predmeta']."' AND Nomer_semestra='".$_GET['Nomer_semestra']."'");
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 13:26  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$menu = mysql_query("SELECT * FROM `menu` ORDER BY `Nomer_semestra`");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['Nomer_semestra']."<br>";
$menu2 = mysql_query("SELECT * FROM `menu` WHERE Nomer_semestra=".$row['Nomer_semestra']." ORDER BY `Name_predmeta`");
while ($row2 = mysql_fetch_array($menu2)) {
echo $row2['Name_predmeta']. "<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE Name_predmeta=".$row2['Name_predmeta']." *ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
echo $row3 ['Nomer_group']. "<br>";
}
}
}
Ругается на строчку while ($row3 = mysql_fetch_array($menu3)). Вот ошибка: Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in.

Оставил вот такой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
$menu1 = mysql_query("SELECT * FROM `menu` ORDER BY `Nomer_semestra`");
while ($row = mysql_fetch_array($menu1))
{
 echo "Семестр: ".$row['Nomer_semestra']."<br>";
 
 $menu2 = mysql_query("SELECT * FROM `menu` WHERE Nomer_semestra=".$row['Nomer_semestra']." ORDER BY `Name_predmeta`");
 while ($row2 = mysql_fetch_array($menu2))
  {
   echo $row2['Name_predmeta']. "<br>";
 
   $menu3 = mysql_query("SELECT * FROM `menu` WHERE Name_predmeta=".$row2['Name_predmeta']."  ORDER BY `Nomer_group`");
 
  }
}
И получилось вот так:
Семестр: 1
Информатика
Информатика
Информатика
Семестр: 1
Информатика
Информатика
Информатика
Семестр: 1
Информатика
Информатика
Информатика
Семестр: 7
Методы Оптимизации
Методы Оптимизации
Методы Оптимизации
Семестр: 7
Методы Оптимизации
Методы Оптимизации
Методы Оптимизации
Семестр: 7
Методы Оптимизации
Методы Оптимизации
Методы Оптимизации
Семестр: 8
АКиТП
Промышленная логистика
Промышленная логистика
Семестр: 8
АКиТП
Промышленная логистика
Промышленная логистика
Семестр: 8
АКиТП
Промышленная логистика
Промышленная логистика
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 14:23
Цитата Сообщение от TheRealKos Посмотреть сообщение
Ругается на строчку while ($row3 = mysql_fetch_array($menu3))
так яж написал после $row3 в 9той строчке пробел убери

Добавлено через 1 минуту
и верни всё обратно и скинь что получилось

Добавлено через 6 минут
кароч вот так попробуй

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$menu = mysql_query("SELECT * FROM `menu` ORDER BY `Nomer_semestra`");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['Nomer_semestra']."<br>";
$menu2 = mysql_query("SELECT * FROM `menu` WHERE Nomer_semestra=".$row['Nomer_semestra']." ORDER BY `Name_predmeta`");
while ($row2 = mysql_fetch_array($menu2)) {
echo $row2['Name_predmeta']."<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE Name_predmeta=".$row2['Name_predmeta']."  ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo $row3['Nomer_group']."<br>";
    }
  }
}
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 15:16  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
так яж написал после $row3 в 9той строчке пробел убери
Пробел я сразу же убрал)

Добавлено через 32 секунды
Вот что выдает:
Семестр: 1
Информатика

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
Информатика

И далее ошибки идут
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 15:37
ковычки я забыл

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$menu = mysql_query("SELECT * FROM `menu` ORDER BY `Nomer_semestra`");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['Nomer_semestra']."<br>";
$menu2 = mysql_query("SELECT * FROM `menu` WHERE Nomer_semestra='".$row['Nomer_semestra']."' ORDER BY `Name_predmeta`");
while ($row2 = mysql_fetch_array($menu2)) {
echo $row2['Name_predmeta']."<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE Name_predmeta='".$row2['Name_predmeta']."'  ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo $row3['Nomer_group']."<br>";
    }
  }
}
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 15:57  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
ковычки я забыл
Такое ощущение, что они то ли дублируются, то ли в "троируются". Теперь так выводит (спрячу под спойлер):
Кликните здесь для просмотра всего текста
Семестр: 1
Информатика
1-78-5
1-78-6
1-78-7
Информатика
1-78-5
1-78-6
1-78-7
Информатика
1-78-5
1-78-6
1-78-7
Семестр: 1
Информатика
1-78-5
1-78-6
1-78-7
Информатика
1-78-5
1-78-6
1-78-7
Информатика
1-78-5
1-78-6
1-78-7
Семестр: 1
Информатика
1-78-5
1-78-6
1-78-7
Информатика
1-78-5
1-78-6
1-78-7
Информатика
1-78-5
1-78-6
1-78-7
Семестр: 7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Семестр: 7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Семестр: 7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Методы Оптимизации
7-78-5
7-78-6
7-78-7
Семестр: 8
АКиТП
8-78-7
Промышленная логистика
8-78-5
8-78-6
Промышленная логистика
8-78-5
8-78-6
Семестр: 8
АКиТП
8-78-7
Промышленная логистика
8-78-5
8-78-6
Промышленная логистика
8-78-5
8-78-6
Семестр: 8
АКиТП
8-78-7
Промышленная логистика
8-78-5
8-78-6
Промышленная логистика
8-78-5
8-78-6
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 16:05
какая структура таблицы? скиньте скрин в PhpMyAdmin
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 16:12  [ТС]
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 16:40
а структуру второй таблицы
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 16:48  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
а структуру второй таблицы
Которая основная, по центру, там идет выборкой из двух таблиц и очень огромный код (точнее говнокод). И вот хочу пока что "меню" это слева сделать... А меню из одной таблицы идет.
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 17:02
думаю название предмета должно быть в другой таблице а здесь только цифры,
пример
Миниатюры
Выборка из базы и сделать ссылку по выбранным данным  
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 17:05
TheRealKos, во второй таблице

цифра 1 будет означать Методы Оптимизации
цифра 2 будет означать Промышленная логистика
цифра 3 будет означать АКиТП
цифра 4 будет означать Информатика
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 17:07  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
думаю название предмета должно быть в другой таблице а здесь только цифры,
А зачем так. Мне кажется так не очень удобно
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 17:32
либо нет , не так..
номер группы убери из таблицы из этой

Добавлено через 50 секунд
TheRealKos, номера групп будешь из другой табдицы выводить

Добавлено через 19 секунд
там где всё отсальное

Добавлено через 3 минуты
ща попробую,,

Добавлено через 20 минут
TheRealKos, не, бред получается
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 17:37  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
бред получается
Вот и я так же думал)

Мне кажется вот здесь нужно подправить...
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$menu = mysql_query("SELECT * FROM `menu` ORDER BY `Nomer_semestra`");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['Nomer_semestra']."<br>";
$menu2 = mysql_query("SELECT * FROM `menu` WHERE Nomer_semestra='".$row['Nomer_semestra']."' ORDER BY `Name_predmeta`");
while ($row2 = mysql_fetch_array($menu2)) {
echo $row2['Name_predmeta']."<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE Name_predmeta='".$row2['Name_predmeta']."'  ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo $row3['Nomer_group']."<br>";
    }
  }
}
Только вот что. И что бы выводилось нужно в таком вот виде:
Семестр
1
Информатика
1-78-5
1-78-6
1-78-7
8
Методы оптимизации
7-78-5
7-78-6
7-78-7
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 17:54
TheRealKos,
попробуй вот так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$menu = mysql_query("SELECT * FROM `menu` WHERE nomer_semestra='7' LIMIT 1");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['nomer_semestra']."<br>";
}
$menu2 = mysql_query("SELECT * FROM `menu` WHERE nomer_semestra='7'");
while ($row2 = mysql_fetch_array($menu2)) {
echo "Предмет: ".$row2['name_predmeta']."<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE name_predmeta='".$row2['name_predmeta']."' ORDER BY `nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo "Группа: ".$row3['nomer_group']."<br>";
  }
}
?>
0
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 557
23.03.2014, 18:04  [ТС]
Цитата Сообщение от lagrei66 Посмотреть сообщение
попробуй вот так
А зачем именно с номером_семестра=7?

Чуть-чуть подправил:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
$menu = mysql_query("SELECT * FROM `menu` WHERE nomer_semestra='7' LIMIT 1");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['nomer_semestra']."<br>";
}
$menu2 = mysql_query("SELECT * FROM `menu` WHERE `Nomer_semestra`='7'");
while ($row2 = mysql_fetch_array($menu2)) {
echo "Предмет: ".$row2['Name_predmeta']."<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE `Name_predmeta`='".$row2['Name_predmeta']."' ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo "Группа: ".$row3['Nomer_group']."<br>";
  }
}
Выдает так:
Семестр:
Предмет: Методы Оптимизации
Группа: 7-78-5
Группа: 7-78-6
Группа: 7-78-7
Предмет: Методы Оптимизации
Группа: 7-78-5
Группа: 7-78-6
Группа: 7-78-7
Предмет: Методы Оптимизации
Группа: 7-78-5
Группа: 7-78-6
Группа: 7-78-7
0
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 18:22
можно так но есть загвостка,, попробуй

PHP
1
2
3
4
5
6
7
8
9
10
11
12
$menu = mysql_query("SELECT * FROM `menu` WHERE Nomer_semestra='7' LIMIT 1");
while ($row = mysql_fetch_array($menu)) {
echo "Семестр: ".$row['Nomer_semestra']."<br>";
}
$menu2 = mysql_query("SELECT * FROM `menu` WHERE `Nomer_semestra`='7' LIMIT 1");
while ($row2 = mysql_fetch_array($menu2)) {
echo "Предмет: ".$row2['Name_predmeta']."<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE `Name_predmeta`='".$row2['Name_predmeta']."' ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo "Группа: ".$row3['Nomer_group']."<br>";
  }
}
Добавлено через 3 минуты
можно даже так

PHP
1
2
3
4
5
6
7
8
9
$menu2 = mysql_query("SELECT * FROM `menu` WHERE `Nomer_semestra`='7' LIMIT 1");
while ($row2 = mysql_fetch_array($menu2)) {
echo "Семестр: ".$row2['Nomer_semestra']."<br>";
echo "Предмет: ".$row2['Name_predmeta']."<br>";
$menu3 = mysql_query("SELECT * FROM `menu` WHERE `Name_predmeta`='".$row2['Name_predmeta']."' ORDER BY `Nomer_group`");
while ($row3 = mysql_fetch_array($menu3)) {
 echo "Группа: ".$row3['Nomer_group']."<br>";
  }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2014, 18:22
Помогаю со студенческими работами здесь

Выборка из БД: Поиск авто по выбранным параметрам
Допустим на странице есть форма для поиска. в ней есть 2 select листа (1 - марка автомобиля. Второй получает модели при выборе марки) ...

Двойная выборка из базы - как сделать "Лучшее по рейтингу"
Подксажите плз. Пробую сделать что-то вроде 'Лучшее по рейтингу'. В таблице записаны id наименования, и его оценка. причем при оценивании...

Выборка по данным формы
Привет! Есть БД с договорами и есть форма (просмотр договора), которая выводит данные по договору. Также на форме располагается кнопка на...

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

Выборка по данным, введенным в текстбокс
У меня создана база данных с использованием model-first. Есть три таблички: Books со свойствами BookID, Title. Authors со свойствами...


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

Или воспользуйтесь поиском по форуму:
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 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты 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