Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: НЕ РАБОТАЕТ ВЫВОД ЛЕВОГО МЕНЮ НА PHP ИЗ MYSQL
 
 автор: rulikch   (17.06.2011 в 11:17)   письмо автору
 
 

Добрый день!
Подскажите, пожалуйста, почему в данном коде:

<?php
function show_cat($par=0,$old=0){
global $dbpf,$lev; $out = ''; $lev++;
$sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id!=1 AND id!=18 AND id!=44 AND id!=41 AND id!=51 AND id!=50 AND id!=48 AND id!=49 AND id!=47 ORDER BY sort_id ASC";
$qur = mysql_query($sql); $kol = mysql_num_rows($qur);
if ($qur && $kol){
while($rez = mysql_fetch_assoc($qur)){
$out .= '<ul>';
$out .= '<li>';

for($i=2;$i<=$lev;$i++) { $out .= '--'; }

if ($rez['menu_status']==1) $out .= stripslashes($rez['title']);
else
$out .= '<a href="?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';
$out .= '</p></li>';
$out .= '</ul>';
$out .= show_cat($rez['id'],$rez['par']);
$lev--;
}
}
return $out;
}
?>

при добавлении разделов из админки через базу не работают ссылки (ведут все почему-то на главную, хотя урл изменяется) и как бы возможно избавиться от урла типа /?menu=0, чтобы был чпу, например /uslugi/.
Заранее благодарен.

  Ответить  
 
 автор: cheops   (17.06.2011 в 11:42)   письмо автору
 
   для: rulikch   (17.06.2011 в 11:17)
 

Следует исправить вот эту строку
$out .= '<a href="?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';
поместив в ней нужный вам URL
$out .= '<a href="/uslugi/?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';

  Ответить  
 
 автор: rulikch   (17.06.2011 в 11:58)   письмо автору
 
   для: cheops   (17.06.2011 в 11:42)
 

Спасибо. Но вопрос в том, чтобы программно из базы передавать в урл страницы всех разделов?

  Ответить  
 
 автор: rulikch   (17.06.2011 в 12:05)   письмо автору
 
   для: rulikch   (17.06.2011 в 11:58)
 

Подскажите, плиз, очень голова пухнет!

  Ответить  
 
 автор: cheops   (17.06.2011 в 12:07)   письмо автору
 
   для: rulikch   (17.06.2011 в 11:58)
 

Тогда нужно больше подробностей, в каких таблицах и полях хранятся URL? Обычно в таких случаях для формирования URL создают отдельную функцию, которая и берет на себя труд формирования URL для разных разделов. Если потом нужно будет поменять схему формирования URL - достаточно будет отредактировать одну функцию.

  Ответить  
 
 автор: rulikch   (17.06.2011 в 12:29)   письмо автору
 
   для: cheops   (17.06.2011 в 12:07)
 

есть в базе таблица "mypages", в ней есть такие поля: id , parent_id, sort_id , url, title

  Ответить  
 
 автор: cheops   (17.06.2011 в 13:59)   письмо автору
 
   для: rulikch   (17.06.2011 в 12:29)
 

А значения полей какие? Поле url на что указывает? Можно его использовать для формирования URL или это независимый адрес?

  Ответить  
 
 автор: rulikch   (17.06.2011 в 12:40)   письмо автору
 
   для: cheops   (17.06.2011 в 12:07)
 

вот в отдельном файле url.php обрабатывается урлы: (здесь с учетом языка еще)


<?php
$is_news = false;
//-------------------------------------------- ОПРЕДЕЛЕНИЕ УРЛА И ПАРАМЕТРОВ СТРАНИЦ ----------------------------------------\\
$arrurl = explode('/', $_SERVER[REQUEST_URI]);
$arrurlcount = count($arrurl);
unset($arrurl[0], $arrurl[$arrurlcount - 1]);
$arrurlcount = count($arrurl);
$last_url=$arrurl[$arrurlcount];
$pre_last_url=$arrurl[$arrurlcount - 1];
$urllevel = $arrurlcount;
if (!$urlnew) {
$urlnew = $arrurl[$arrurlcount];
}
if (!$urlnew || $urlnew == 'en' || $urlnew == 'de') {
$urlnew = 'main';
}


if ($arrurl[1] == 'de') {
$lang = 'de/';
$ln='de';
$is_lang_url = $arrurl[2];
} elseif ($arrurl[1] == 'en') {
$lang = 'en/';
$ln='en';
$is_lang_url = $arrurl[2];
} else {
$lang = '';
$ln='ru';
$is_lang_url = $arrurl[1];

}
if($ln=='ru' && strlen($arrurl[1]) == 2){
header ("Location: http://www.site.ru/stranitsa-ne-naydena/");
die();
}
if(!$is_lang_url){
$is_lang_url='main';
}
if ($urlnew) {
$res6 = mysql_query("SELECT * FROM mypages WHERE url='$urlnew'");
if((mysql_num_rows($res6)>0)){
;
}elseif(($arrurl[1]=='de' OR $arrurl[1]=='en') AND $urllevel <2){
;
}else{
$res6 = mysql_query("SELECT * FROM catalog WHERE url='$urlnew'");
if((mysql_num_rows($res6)>0)){
;
}else{
$res6 = mysql_query("SELECT * FROM board WHERE url='$urlnew'");
if((mysql_num_rows($res6)>0)){
;
}else{
$res6 = mysql_query("SELECT * FROM board_messages WHERE url='$urlnew'");
if((mysql_num_rows($res6)>0)){
$is_news = true;
}else{
$res6 = mysql_query("SELECT * FROM news WHERE url='$urlnew'");
if((mysql_num_rows($res6)>0)){
;
}else{

}
}
$_tmp_=2;
if ($lang == 'en/' OR $lang == 'de/') $_tmp_=3;

if ($urllevel == $_tmp_) {
}

while ($row6 = mysql_fetch_assoc($res6)) {

$pageid = $res7['id'];

if ($lang == 'en/') {

$pageh1 = $row6['h1_eng'];
$pagetext = $row6['text_eng'];
$pagetitle = $row6['title_eng'];
$pagemenutext = $row6['menutext_eng'];
$pagedescription = $row6['description_eng'];
$pagekeywords = $row6['keywords_eng'];

} elseif ($lang == 'de/') {

$pageh1 = $row6['h1_de'];
$pagetext = $row6['text_de'];
$pagetitle = $row6['title_de'];
$pagemenutext = $row6['menutext_de'];
$pagedescription = $row6['description_de'];
$pagekeywords = $row6['keywords_de'];

} else {
$pageid = $row6['id'];
$pageh1 = $row6['h1'];
$pagetext = $row6['text'];
$pagetitle = $row6['title'];
$pagemenutext = $row6['menutext'];
$pagedescription = $row6['description'];
$pagekeywords = $row6['keywords'];
}


}

}


//-------------------------------------------- END ОПРЕДЕЛЕНИЕ УРЛА И ПАРАМЕТРОВ СТРАНИЦ ----------------------------------------\\

  Ответить  
 
 автор: rulikch   (17.06.2011 в 13:07)   письмо автору
 
   для: cheops   (17.06.2011 в 12:07)
 

Подскажите, что еще нужно для того, чтобы Вы мне подсказали?
Ну очень нужно сейчас!!!

  Ответить  
 
 автор: rulikch   (17.06.2011 в 13:25)   письмо автору
 
   для: cheops   (17.06.2011 в 12:07)
 

Вы на месте?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования