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

12
Евгений Иванов
На сайте с 26.07.2006
Offline
272
#11
DenIT:
Понятней не стало - могут ли быть разные родители у какой-то одной страницы?

Сами для себя усложняете? ))

Всё просто :)

Есть страница, у неё должен быть родитель, он фиксируется в page_referal в виде имени ( page_url ) родителя :) Родителей не может быть много ;) У одной страницы один родитель :)

В любом случаи всем спасибки буду с примерами выше данными - разбираться как приду с магазина :)

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

А что в поле page_referal у родителей? Пусто? Тогда в запрос добавить WHERE


SELECT page_url, page_referal FROM pages WHERE page_referal<>'' ORDER BY page_referal

Если другая какая-то одинаковая инфа - то по ней исключить.

PS: Это все свелось к примитивному дереву, интересно, кто сможет угадать задачу по исходному сообщению?

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

вот, что значит правильно поставить задачу :)

DenIT:
А что в поле page_referal у родителей? Пусто?

тоже интересно

tommy-gung добавил 28.11.2008 в 16:07

чего-то набросал


$sql = "SELECT page_url, page_referal FROM pages ORDER BY page_url ASC";
$result = mysql_query($sql, $conndb) or die(mysql_error());

while($val = mysql_fetch_array($result)) {
if(!$p_name) {
$p_name = $val['page_url'];
echo $p_name."<br />\n";
continue;
}
if($val['page_referal'] == $p_name) {
echo " - ".$val['page_referal']."<br />\n";
} else {
$p_name = $val['page_url'];
echo $p_name."<br />\n";
}
}

// $conndb - указатель на соединение с бд
// $conndb = mysql_connect(HOST, USER, PASS) or die(mysql_error());
Здесь не могла быть ваша реклама
gerkon
На сайте с 21.10.2005
Offline
40
#14

Некошерный код, но работает:

<?php

/**

* @author Gerkon

* @copyright 2008

*/

if(!mysql_connect("localhost","chords","chords"))die("Ошибка базы данных: ".mysql_error());

if(!mysql_select_db("chords"))die("Ошибка базы данных: ".mysql_error());

$query = mysql_query("select DISTINCT page_referal from pages");

while ($arr = mysql_fetch_array($query))

{

if (trim($arr['page_referal']) == "")continue;

echo "<b>".$arr['page_referal']."</b><br />";

$tquery = mysql_query("select page_url from pages where page_referal = '".$arr['page_referal']."'");

while ($value = mysql_fetch_array($tquery))

{

echo "- ".$value['page_url']."<br />";

}

}

echo "<br /><br />Страницы без реферера:<br />";

$query = mysql_query("select page_url from pages where page_referal = ''");

while ($arr = mysql_fetch_array($query))

{

$tquery = mysql_query("select page_url from pages where page_referal = '".$arr['page_url']."' LIMIT 0,1");

if (mysql_num_rows($tquery) == 0)echo $arr['page_url']."<br />";

}

?>

Естественно в mysql_connect и mysql_select_db ставим свои данные.

В результате выводит -

index.html

- 1.html

- 2.html

2.html

- 3.html

Страницы без реферера:

4.html

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

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