вложенные страницы site.ru/stranica/podstranica/ и вывод их из базы

americanets

Новичок
вложенные страницы site.ru/stranica/podstranica/ и вывод их из базы

Как сделать вложеную страницу? Те например www.site.ru/stranica/ я выбираю так

$sql = "SELECT * FROM `pages` WHERE `name_url`='stranica';";

а как сделать чтоб было www.site.ru/stranica/podstranica/...

и можно было вывести в меню
страница
- подстраница1
- подстраница2
- еще страница
- подстраница3
страница 2
- подстраница

и т д возможно до бесконечности вложений в зависимости от урла?
 

HraKK

Мудак
Команда форума
анализируешь URL и спускаешся по ступенькам.
 

americanets

Новичок
вроде бы нет, там нужно парсить УРЛ и на основании этого дергать из базы данные , нашел код, но как быть дальше не знаю

<?php
header("http/1.1 200 Ok");
if(empty($_SERVER['REDIRECT_URL'])) $P=array();
else
{ $url=$_SERVER['REDIRECT_URL'];
if($url[0]=='/') $url=substr($url, 1);
if($url[strlen($url)-1]=='/') $url=substr($url, 0, -1);
$url=explode('/', $url);
$tmp=count($url)-1;
if($tmp>0)
{
$P=array(); $j=0;
for($i=0; $i<=$tmp; $i++)
{
if(!empty($url[$i]))
{
$P[$j]=$url[$i];
$j++;
}
}
}
else $P=array();
}
?>
в MySql

id=идентификатор
name=название пункта
title=тайтл
url=адрес
parent_id=принадлежность к категории

но как все собрать во едино?
 

HraKK

Мудак
Команда форума
выкинь этот код.
Даже не приближайся к нему.

делай как я сказал.
 

americanets

Новичок
а по подробнее можно тк я в данную тему никак не могу вникнуть, ежли можешь помоги примером :)

-~{}~ 20.11.06 20:33:

в htaccess

RewriteEngine on
RewriteRule ^(.*) content.php

CREATE TABLE `pages` (`id` int(11) NOT NULL auto_increment, `name_url` varchar(255) NOT NULL default '', `content` text,`parent` int(11) NOT NULL default '0', PRIMARY KEY (`id`));


INSERT INTO `pages` VALUES (1, 'home','просто страница', 0);
INSERT INTO `pages` VALUES (2, 'pod','просто подстраница', 1);
INSERT INTO `pages` VALUES (3, 'podstr3',

$full_url = preg_replace("/\?.*$/", "", $_SERVER["REQUEST_URI"]);
$full_url = preg_replace("/\/$/","",$full_url);
$full_url = preg_replace("/^\//","",$full_url);
$urls = preg_split("/\//",$full_url);
$parent = count($urls)-1;
for ($n=0; $n<=count($urls)-1; $n++) {
$sql = "SELECT * FROM `pages` WHERE `parent`=$parent AND `name_url`='$urls[$n]';";
$result=mysql_query($sql);
$dat=mysql_fetch_array($result);
print $dat[content];
}

а что делать если адрес www.site.ru или пользователь ввел неверный адрес, тогда ведь ошибки

Еще баг нашел, вставил страницы, с такимиже названиями, но привязал к другой, а выводится не та что нужна:(
а ведь подобное не очень хорошо :(

http://site.ru/satranica/podstresho/
http://site.ru/satranica/podstresho/podstresho/

INSERT INTO `pages` VALUES (5, 'satranica', 'просто подстраница 2', 0);
INSERT INTO `pages` VALUES (6, 'podstresho', 'просто подстраница 2osds', 5);
INSERT INTO `pages` VALUES (7, 'podstresho', 'просто подстраница isho i ischo', 6);
 
Сверху