PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (2): « 1 [2]
Найдено сообщений: 22
nofx
Отправлено: 20 Апреля, 2011 - 19:43:23 • Тема: Помогите отобразить результаты SQL запроса в виде 3-уровневого списка • Форум: Программирование на PHP
Ответов: 7 Просмотров: 868
Вроде получилось, список выводится как я хотел.Привожу код ( только он "быдлокодовский и непонятный" как-то модно говорить , так что извиняюсь - я новичок):
PHP:
скопировать код в буфер обмена
//запрос формирует группы школ по экскурсии с id_news
$result_school = mysql_query ( "SELECT school,id_school FROM school WHERE id_school in (SELECT id_school FROM schkolnik WHERE id_schkolnik in
(SELECT id_schkolnik FROM orders WHERE id_news = 5) GROUP BY id_school)" ) ;
//запись в массив каждой школы
{
$one [ ] = array ( "id_school" => $row_school [ id_school
] , "school" => $row_school [ school
] ) ; }
//запрос формирует школьников для каждой группы школ по экскурсии с id_news
$result_schkolnik = mysql_query ( "SELECT fam, name, otchestvo,id_school FROM schkolnik WHERE id_school in (SELECT id_school FROM schkolnik WHERE id_schkolnik in
(SELECT id_schkolnik FROM orders WHERE id_news = 5)
GROUP BY id_school)
ORDER BY id_school asc" ) ;
//запись в массивы школьников для каждой id_school
{
//формируем двумерный массив $two [номер][фамилия.имя.отчество]
$two [ ] = array ( "fam" => $row_schkolnik [ fam
] , "name" => $row_schkolnik [ name] ,
"otchestvo" => $row_schkolnik [ otchestvo] ,
"id_school" => $row_schkolnik [ id_school] ) ;
}
$n1 = 0 ; $n2 = 0 ; //n1,n2 - нумерация
for ( $i = 0 ; $i < count( $one ) ; $i ++ )
{
$n1 ++;
echo $n1 . '-' . $one [ $i ] [ "school" ] . '</br>' ;
//выводим школьников этой школы, то есть $two[$i][id_school]==$one[$i][id_school]
for ( $j = 0 ; $j < count( $two ) ; $j ++ )
{
if ( $two [ $j ] [ "id_school" ] == $one [ $i ] [ "id_school" ] )
{
$n2 ++;
echo '__' . $n2 . '-' . $two [ $j ] [ "fam" ] . '</br>' ;
}
}
}
nofx
Отправлено: 20 Апреля, 2011 - 16:39:45 • Тема: Помогите отобразить результаты SQL запроса в виде 3-уровневого списка • Форум: Программирование на PHP
Ответов: 7 Просмотров: 868
Знаю, но такие методы построения основываются на $id - идентификаторе раздела и $pid - идентификаторе родительского раздела, а таких полей в моей БД просто нету
Пробую это сделать по такой придуманной схеме:
1)делаю запрос по школам c группировкой (GROUP BY) и формирую массив $one[] , который содержит отобранные школы (это будет 1-ый уровень)
2)делаю запрос по школьникам ,из него формирую двумерный массив $two[]
То есть массив в массиве:
$two = array("id_school " => array ( "name"=> имя школьника));
3) как-то отобразить массивы в циклах, типа такого:
Вот.....По пункту 2 никак не могу правильно заполнить двумерный массив $two значениями из результата SQL запроса чтобы он был такого вида:
nofx
Отправлено: 20 Апреля, 2011 - 01:03:13 • Тема: Помогите отобразить результаты SQL запроса в виде 3-уровневого списка • Форум: Программирование на PHP
Ответов: 7 Просмотров: 868
Итак, есть моя MySQL база:
-школьники-
CODE (
SQL ):
скопировать код в буфер обмена
TABLE schkolnik (
id_schkolnik int( 11) ,
name varchar( 40) ,
id_school int( 11) ,
id_rukovod int( 11) ,
PRIMARY KEY ( id_schkolnik )
) ;
-их наставники-
-заказы (школьников на новости )-
-новости-
Есть запрос (выводит подписчиков на новость № 5 )
$query = CODE (
SQL ):
скопировать код в буфер обмена
"SELECT *
FROM schkolnik
WHERE id_schkolnik
IN (
SELECT id_schkolnik
FROM orders
WHERE id_news =5
ORDER BY id_rukovod ASC
)
ORDER BY id_school ASC"
Выводит этот запрос типа такого:
Цитата: ----------------------------------------------------------------------------
id_schkolnik--------name-------- ------id_school-------------id_r ukovod
1---------------------ivan1--------------1--------------------------1
2---------------------ivan2----- ---------1---------------------- ----1
3 --------------------ivan3------- -------1------------------------ --2
4---------------------ivan4--------------2--------------------------3
5---------------------ivan5----- ---------2---------------------- ----3
--------------------------------------------------------------------------------------
Возможно ли обработать этот запрос скриптом - php для его отображения в таком виде (в виде трехуровневого списка)???:
id_shool 1
--id_rukovod 1
------id_schkolnik 1
------id_schkolnik 2
--id_rukovod 2
------id_schkolnik 3
id_shool 2
--id_rukovod 3
------id_schkolnik 4
------id_schkolnik 5
Нужно формировать дерево из возвращаемого запросом массива? Не могу ничего придумать ...
nofx
Отправлено: 18 Апреля, 2011 - 14:42:26 • Тема: помощь по запросу на выборку с двумя противоположными условиями "Where" • Форум: SQL и Архитектура БД
Ответов: 2 Просмотров: 23
Помогите правильно составить запрос. Сначала база данных:
Экскурсии:
Заказы на экскурсии:
Ну и сами участники ( заказывают сами себе экскурсии - в таблице orders появляются записи с соответсвующими id_shkolnik и id_news):
Нужен запрос, выводящий все экскурсии на которые подписан данный школьник ( php будет выводить галочку в соответсвующей графе) и на которые он не подписан:
есть два SQL запроса - 1-ый выводит те, на которые он подписан:
2-ой - на которые он не подписан:
Вот как мне их объединить правильно? Оператором AND?
Вот так ошибка:
CODE (
SQL ):
скопировать код в буфер обмена
SELECT * FROM news WHERE id_news IN ( SELECT id_news FROM orders WHERE id_schkolnik = '$user_id' ) AND WHERE id_news NOT IN ( SELECT id_news FROM orders WHERE id_schkolnik = '$user_id' )
nofx
Отправлено: 03 Апреля, 2011 - 23:17:37 • Тема: Помощь по директиве RewriteRule • Форум: Программирование на PHP
Ответов: 2 Просмотров: 186
Саныч пишет: думаю так будет правильней
накой вы поставили это ([/]?)
з.ы. про точку не уверен, нужно ли ее экранировать в данном случае, но на всякий случай
С ModRewrite еще на работал, спасибо. Просто скачал скрипт для публикации 2005 года (http://www.woweb.ru/load/98-1-0-4032), вот его и приходится дорабатывать.
nofx
Отправлено: 03 Апреля, 2011 - 22:25:55 • Тема: Помощь по директиве RewriteRule • Форум: Программирование на PHP
Ответов: 2 Просмотров: 186
Правильно ли написана директива для перенаправления с article_число.html на view.php?news_id=число
файл .htaccess
Ведь будет ли виден $_GET['news_id']=чиcло в view.php
Страниц (2): « 1 [2]
Powered by ExBB FM 1.0 RC1. InvisionExBB