Здравствуйте, уважаемые форумчане. Один из членов форума помог сделать следующее меню. Данное меню выдает ссылку следующего вида: site.ru/index.php?id=1 и т.д. Сделал транслит для чпу при добавлении страницы в БД. Чтобы вытягивать из строки site.ru/index.php?id=1 не хватает параметра вида: site.ru/index.php?id=1&chpu=index И после вытягивать через .htaccess и приведения к виду site.ru/index.html <? $id=(isset($_GET['id'])) ?(int)$_GET['id']:1; $out='';//тут будет меню function menu(&$arr,&$out,$parent=0,&$level=0){ global $id; foreach($arr as $row){ if($row['parent']==$parent){ $sel=($row['id']==$id)?' ':''; $level++; $out.=sprintf('%s<li%s><a href="index.php?id=%d"%s><span class="l"></span><span class="r"></span><span class="t">%s</span></a>', str_repeat("\t",$level),$sel,$row['id'],$sel,$row['namemenu']); $inner=''; $level++; menu($arr,$inner,$row['id'],$level); $level--; if(strlen($inner)>0){ $out.=sprintf('%s%s<ul>%s%s%s</ul>%s%s', "\n",str_repeat("\t",$level+1),"\n",$inner,str_repeat("\t",$level+1),"\n",str_repeat("\t",$level)); } $out.="</li>\n"; $level--; } } } $mysqli=new mysqli('localhost','root','','mysite');//хост,логин,пароль,бд $result=$mysqli->query("SELECT id,parent,namemenu FROM content"); $structArr=array(); while($res=$result->fetch_assoc()){$structArr[]=$res;} $result->close(); menu($structArr,$out,0);//генерируем меню в переменную $out unset($structArr);//массив больше не нужен ?>
проще переписать, чем в этом ковыряться =) я тут вобще не вижу где ссылка делается. кроме как вот эта хренька
если переписать со спринтф на эхо, то наверное будет проще жить Код (Text): $out.=sprintf('%s<li%s><a href="index.php?id=%d"%s><span class="l"></span><span class="r"></span><span class="t">%s</span></a>', str_repeat("\t",$level),$sel,$row['id'],$sel,$row['namemenu']);
вернее даже без эхо, это же присваивание. зачем было так делать - не оч понятно. это одна строка. перепишите её подставив вместо %s переменные по-очереди. т.е. Код (PHP): $out .= str_repeat("\t",$level) . "<li{$sel}><a href='index.php?id={$row['id']}'{$sel}><span class='l'></span><span class="r"></span><span class="t">{$row['namemenu']}</span></a>";
должно было ничего не измениться. если так - значит ок и можно начинать коверкать это дело и совать свои переменные внутре. каков результат?
Пока ищу литературу...Для того чтобы вывести ссылку ../index.php?id=1&chpu=contacts Чтобы хтакцесс выташить ../contacts.html
Все таки не понятно, что требуется... Ну можно, но это не значит что ссылка вида ?id=1&chpu=contacts не будет доступна. А вам, что надо?
вы перепутали причину и следствие. Человекам скармиливаются ЧеловекоЧитаемыеУрлы. А потом они переделываются (за каким-то хером) в уродливые с параметрами. Вы если не старый проект переделываете, то вы просто обратите внимание на $_SERVER['REQUEST_URI'] и функцию parse_url()
зачем же вы хотите сделать урл вида /index.php?id=1&chpu=contacts хер прочтёшь? =) делайте нормальный. откуда у вас название страницы берется?