Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
1

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

22.03.2014, 21:04. Просмотров 1207. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2014, 21:04
Ответы с готовыми решениями:

Выборка информации из бд по нажатию на ссылку
Доброе утро. Вообщем, такая задача. Есть несколько ссылок на сайте с разными...

Выборка из базы по
Всем доброго времени суток! Имеется следующая форма: <form action="test1.php"...

Выборка из базы
Пишу что-то вроде тестирования для студентов. Студент заходит на главную...

Выборка из базы
Нужна помощь выборке из бд данных за определенный промежуток дат, в формате...

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

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

Размер: 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
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 07:41 3
в теории (моей личной теории) это как то так,, тройной цикл мать его,,
сразу же говорю, что не факт что это правильно , и да я его не проверял могут быть ошибки,

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
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
23.03.2014, 13:26  [ТС] 4
Цитата Сообщение от 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
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 14:23 5
Цитата Сообщение от 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
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
23.03.2014, 15:16  [ТС] 6
Цитата Сообщение от lagrei66 Посмотреть сообщение
так яж написал после $row3 в 9той строчке пробел убери
Пробел я сразу же убрал)

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

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

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

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
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
23.03.2014, 15:57  [ТС] 8
Цитата Сообщение от 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
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 16:05 9
какая структура таблицы? скиньте скрин в PhpMyAdmin
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
23.03.2014, 16:12  [ТС] 10
Выборка из базы и сделать ссылку по выбранным данным
0
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 16:40 11
а структуру второй таблицы
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
23.03.2014, 16:48  [ТС] 12
Цитата Сообщение от lagrei66 Посмотреть сообщение
а структуру второй таблицы
Которая основная, по центру, там идет выборкой из двух таблиц и очень огромный код (точнее говнокод). И вот хочу пока что "меню" это слева сделать... А меню из одной таблицы идет.
0
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 17:02 13
думаю название предмета должно быть в другой таблице а здесь только цифры,
пример
0
Миниатюры
Выборка из базы и сделать ссылку по выбранным данным  
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 17:05 14
TheRealKos, во второй таблице

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

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

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

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

Добавлено через 20 минут
TheRealKos, не, бред получается
0
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
23.03.2014, 17:37  [ТС] 17
Цитата Сообщение от 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
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 17:54 18
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
TheRealKos
2 / 2 / 3
Регистрация: 11.09.2011
Сообщений: 531
23.03.2014, 18:04  [ТС] 19
Цитата Сообщение от 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
lagrei66
8 / 8 / 5
Регистрация: 28.11.2012
Сообщений: 99
23.03.2014, 18:22 20
можно так но есть загвостка,, попробуй

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
23.03.2014, 18:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2014, 18:22

Выборка из базы
Сильно не углублялся В php работу с базами а видимо стояло. Нужно решить...

Выборка из базы
мне необходимо выбрать из базы 1min, таблицы а03 строку b46 , за 2016 год...

Выборка с базы данных
Доброго времени суток! Хочу попросить помощи. Вот я столкнулся с такой...


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

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

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