Помогите составить mysql запрос для вывода информации

12
Евгений Иванов
На сайте с 26.07.2006
Offline
272
1018

Есть таблица pages в ней есть

page_url - пишиться адрес типа index.php

page_referal - пишиться реферальная страница типа index.php

нужно вывести примерно так

index.php и под ней все страниц где page_referal равен index.php

index.php

-about.php

-me.php

Примерно так, циклом, все записи, как сделать не могу понять

Wap.Click / Вап.Клик / Я - рядом!
DI
На сайте с 03.01.2007
Offline
123
#1


$res=mysql_query("SELECT page_url, page_referal FROM pages ORDER BY page_referal");
while ($row=mysql_fetch_array($res))
{
if ($cur_page!=$row[page_referal]) echo '<b>'.$row[page_referal].'</b><br>';
echo '- '.$row[page_url].'<br>';
$cur_page = $row[page_referal];
}

PS: не проверял

Высказывание идиотского утверждения требует на порядок меньше усилий, чем его последовательное и обоснованное опровержение и более того, иногда это опровержение вообще невозможно. © (http://zhurnal.lib.ru/s/shapiro_m_a/raspidiota.shtml)
Евгений Иванов
На сайте с 26.07.2006
Offline
272
#2

<? $res=mysql_query("SELECT page_url, page_referal FROM pages ORDER BY page_referal");

while ($row=mysql_fetch_array($res))
{
if ($cur_page!=$row[page_referal])
echo '<h1>'.$row[page_referal].'</h1><br>';
echo '-- '.$row[page_url].'<br>';
$cur_page = $row[page_referal];
} ?>

Теперь показываеться так


-- index.html
2.html


-- 3.html
index.html

-- 1.html
-- 2.html

То есть страницы родители показываються дважды, как страницы и как родители, можно ли просто что бы по очередь и всё шло, но родители жирным шрифтом, а те кт опод радителем с чёрточкой

Родитель
-страница под ним
-страница под ним

Страницы без родителя
Страницы без родителя
DI
На сайте с 03.01.2007
Offline
123
#3

весь мозг сломал, особенно с ошибками и без запятых:)

Задача какая? О чем все же речь? Тут родители или рефералы?

Изначально я понял, что нужна статистика, по которой видно, на какие страницы переходят люди с конкретных страниц, которые выступают в роли реферала. Это так?

PS: если глюк только в дублировании страниц, то

думаю:
if ($cur_page!=$row[page_referal])
echo '<h1>'.$row[page_referal].'</h1><br>';

Этот код у меня в исходнике не просто так на одной строке был - т.к. if без фигурных скобок выполняет только то, что стоит на той же строке. А в текущем виде этот if вообще ни на что не влияет. Верни все обратно:)

AM
На сайте с 12.09.2007
Offline
47
#4
DenIT:
Этот код у меня в исходнике не просто так на одной строке был - т.к. if без фигурных скобок выполняет только то, что стоит на той же строке. А в текущем виде этот if вообще ни на что не влияет. Верни все обратно:)

Вы уверены??? http://php.ru/manual/language.control-structures.html

<?php

if ($a > $b)
echo "a is bigger than b";
?>
С уважением, Морозов Андрей, разработчик проекта eTXT.ru (http://www.etxt.ru/?r=morozov), icq 55377667
DI
На сайте с 03.01.2007
Offline
123
#5
AndreM:
Вы уверены???

Вполне вероятно, что ошибся:) Теорией этого вопроса никогда не увлекался, зато на практике не раз сталкивался с проблемами именно такого написания. Если конструкция будет чуть более сложной, будут else и другие if - то можно запросто получить ошибку интерпретирования. С тех пор четко следую правилу - или на одной строке, или ставить фигурные скобки.

А то, что в теории так, как Вы написали - согласен, я некорректно написал.

AM
На сайте с 12.09.2007
Offline
47
#6
DenIT:
Вполне вероятно, что ошибся:) Теорией этого вопроса никогда не увлекался, зато на практике не раз сталкивался с проблемами именно такого написания. Если конструкция будет чуть более сложной, будут else и другие if - то можно запросто получить ошибку интерпретирования. С тех пор четко следую правилу - или на одной строке, или ставить фигурные скобки.

А то, что в теории так, как Вы написали - согласен, я некорректно написал.

Не, я тоже согласен, что фигурные скобки - это хороший стиль, особенно кода else. Код более читаемым становится. Но это уже оффтоп.

Евгений Иванов
На сайте с 26.07.2006
Offline
272
#7

Цель простая :) Есть страница 1.html у неё родитель index.html грубо говоря, мне нужно вывести весь список страниц что бы не одна страница не повторялась, но в списке было видно - какие страницы под какими :)

DenIT:
PS: если глюк только в дублировании страниц, то

Ситуация не меняется ;)

gerkon
На сайте с 21.10.2005
Offline
40
#8

Киньте в личку дамп таблицы строк на 20. Сейчас поколдую.

C уважением, Андрей. Пользуюсь этим хостингом уже 4 года! (http://www.replay.ru/index.php?part_id=3600) Ведущий манул Pixshock.net (http://www.pixshock.net)
S
На сайте с 15.07.2008
Offline
30
#9


DROP TABLE IF EXISTS `zzz`;
CREATE TABLE `andretan`.`zzz` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`page_url` varchar(255) NOT NULL default '',
`page_referal` varchar(255) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251;


SELECT z.page_url as page_referal, z2.page_url
FROM zzz z LEFT JOIN zzz z2 ON z2.page_referal = z.page_url
WHERE z.page_referal = ''
ORDER BY z.page_url, z2.page_url;

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

page_referal page_url

----------- ---------

'index.php' 'about'

'index.php' 'about2'

'index2.php' 'fff'

'index2.php' 'ttt'

И дальше - скрипт на ПыХПыхе уровня 1-го семестра ПО.

Банки Украины (http://www.bankstore.com.ua) Генератор сайтмепов (/ru/forum/272468) Ода Гугльботу (/ru/forum/285758)
DI
На сайте с 03.01.2007
Offline
123
#10
думаю:
Есть страница 1.html у неё родитель index.html грубо говоря, мне нужно вывести весь список страниц что бы не одна страница не повторялась, но в списке было видно - какие страницы под какими

Понятней не стало - могут ли быть разные родители у какой-то одной страницы?

Если в базе просто куча одинаковых записей, то

SELECT page_url, page_referal

меняем на

SELECT DISTINCT page_url, page_referal

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий