Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: НЕ РАБОТАЕТ ВЫВОД ЛЕВОГО МЕНЮ НА PHP ИЗ MYSQL
Форумы портала PHP.SU » » Если скрипт не работает » НЕ РАБОТАЕТ ВЫВОД ЛЕВОГО МЕНЮ НА PHP ИЗ MYSQL

Страниц (1): [1]
 

1. rulikch - 17 Июня, 2011 - 19:12:10 - перейти к сообщению
Добрый день!
Подскажите, пожалуйста, почему в данном коде:

<?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/.
Заранее благодарен.
2. Slavenin - 17 Июня, 2011 - 19:39:22 - перейти к сообщению
а прописать в ссылке абсолютный адрес вы не пробовали?
3. rulikch - 17 Июня, 2011 - 19:44:34 - перейти к сообщению
Slavenin пишет:
а прописать в ссылке абсолютный адрес вы не пробовали?


И как Вы себе на примере это представляете?
4. Slavenin - 17 Июня, 2011 - 20:21:07 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';


и по sql можно переписать так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";


да, и где собственно говоря обработка переменной $_GET['menu'] ? что вы ожидаете увидеть при нажатии на ссылку?
5. rulikch - 17 Июня, 2011 - 21:14:08 - перейти к сообщению
Slavenin пишет:
PHP:
скопировать код в буфер обмена
  1. $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';


и по sql можно переписать так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";


да, и где собственно говоря обработка переменной $_GET['menu'] ? что вы ожидаете увидеть при нажатии на ссылку?


Большое Вам спасибо. Намекните, пожалуйста, как мне тогда правильно $_GET['menu'] обрабатывать? Спасибо.
(Добавление)
rulikch пишет:
Slavenin пишет:
PHP:
скопировать код в буфер обмена
  1. $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';


и по sql можно переписать так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";


да, и где собственно говоря обработка переменной $_GET['menu'] ? что вы ожидаете увидеть при нажатии на ссылку?


Большое Вам спасибо. Намекните, пожалуйста, как мне тогда правильно $_GET['menu'] обрабатывать? Спасибо.

<?php
function show_cat($par=0,$old=0)
{
global $dbpf,$lev; $out = ''; $lev++;
$sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id ASC";
$qur = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($qur))
{
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="http://site.local/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';
$out .= '</p></li>';
$out .= '</ul>';
$out .= show_cat($rez['id'],$rez['par']);
$lev--;
}
}
return $out;
}
?>
(Добавление)
rulikch пишет:
Slavenin пишет:
PHP:
скопировать код в буфер обмена
  1. $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';


и по sql можно переписать так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";


да, и где собственно говоря обработка переменной $_GET['menu'] ? что вы ожидаете увидеть при нажатии на ссылку?


Большое Вам спасибо. Намекните, пожалуйста, как мне тогда правильно $_GET['menu'] обрабатывать? Спасибо.
(Добавление)
rulikch пишет:
Slavenin пишет:
PHP:
скопировать код в буфер обмена
  1. $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';


и по sql можно переписать так:

PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";


да, и где собственно говоря обработка переменной $_GET['menu'] ? что вы ожидаете увидеть при нажатии на ссылку?


Большое Вам спасибо. Намекните, пожалуйста, как мне тогда правильно $_GET['menu'] обрабатывать? Спасибо.

<?php
function show_cat($par=0,$old=0)
{
global $dbpf,$lev; $out = ''; $lev++;
$sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id ASC";
$qur = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($qur))
{
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="http://site.local/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';
$out .= '</p></li>';
$out .= '</ul>';
$out .= show_cat($rez['id'],$rez['par']);
$lev--;
}
}
return $out;
}
?>




Большое спасибо за помощь! Но я код подправил след. образом. Все равно не работают ссылки. В урле http://site[dot]local/index.php?menu=0 не изменяется.

<?php
function show_cat($par=0,$old=0)
{
global $dbpf,$lev; $out = ''; $lev++;
$sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id ASC";
$qur = mysql_query($sql) or die(mysql_error());
if (mysql_num_rows($qur))
{
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="http://site.local/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';
$out .= '</p></li>';
$out .= '</ul>';
$out .= show_cat($rez['id'],$rez['par']);
$lev--;
}
}
return $out;
}
?>
6. Slavenin - 17 Июня, 2011 - 21:26:23 - перейти к сообщению
Не понял
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. if(isset($_GET['menu']))
  3. {
  4.   //обработчик типа
  5.   if($_GET['menu'] == 1)
  6.   {...}
  7.   else//или elseif смотря что нужно
  8.   {...}
  9.  
  10. }
  11. else
  12. {
  13. function show_cat($par=0,$old=0){
  14.  global $dbpf,$lev; $out = ''; $lev++;
  15.  $sql = "SELECT * FROM mypages WHERE parent_id=".$par." AND id NOT IN (1,18,44,41,51,50,48,49,47) ORDER BY sort_id";
  16.  $qur = mysql_query($sql); $kol = mysql_num_rows($qur);
  17.  if ($qur && $kol){
  18.  while($rez = mysql_fetch_assoc($qur)){
  19.  $out .= '<ul>';
  20.  $out .= '<li>';
  21.  
  22.  for($i=2;$i<=$lev;$i++) { $out .= '--'; }
  23.  
  24.  if ($rez['menu_status']==1) $out .= stripslashes($rez['title']);
  25.  else
  26.  $out .= '<a href="http://mysite.ru/index.php?menu='.$rez['parent_id'].'">'.stripslashes($rez['title']).'</a>';
  27.  $out .= '</p></li>';
  28.  $out .= '</ul>';
  29.  $out .= show_cat($rez['id'],$rez['par']);
  30.  $lev--;
  31.  }
  32.  }
  33.  return $out;
  34.  }
  35. //все-таки стоит наверн вызвать функцию, ток параметры сами укажите какие нужно.
  36. echo function show_cat($par, $old)
  37. }
  38.  
  39. ?>

и может быть, то что я написал, даже будет работать Ха-ха
7. rulikch - 17 Июня, 2011 - 21:46:32 - перейти к сообщению
Slavenin пишет:
Не понял
[PHP]<?php
if(isset($_GET['menu']))
{
//обработчик типа
if($_GET['menu'] == 1)
{...}
else//или elseif смотря что нужно
{...}

}


Спасибо. Я, не понял, как мне после условия if($_GET['menu'] == 1) написать, чтобы адрес был ЧПУ-ный, типа http://www[dot]site[dot]ru/uslugi/ - ?
(Добавление)
rulikch пишет:
Slavenin пишет:
Не понял
[PHP]<?php
if(isset($_GET['menu']))
{
//обработчик типа
if($_GET['menu'] == 1)
{...}
else//или elseif смотря что нужно
{...}

}


Спасибо. Я, не понял, как мне после условия if($_GET['menu'] == 1) написать, чтобы адрес был ЧПУ-ный, типа http://www[dot]site[dot]ru/uslugi/ - ?


Я так понимаю GET мне не очень подойдет для ЧПУ? Может Post попробовать?
8. rulikch - 18 Июня, 2011 - 17:07:58 - перейти к сообщению
кто-то может подсказать, что я не так делаю?
9. Slavenin - 18 Июня, 2011 - 18:25:02 - перейти к сообщению
http://selkinvitaly[dot]ru/article28[dot]html
10. rulikch - 18 Июня, 2011 - 19:20:06 - перейти к сообщению
Спасибо с ЧПУ буду разбираться, а как с условиями правильно работать?

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. if(isset($_GET['menu']))
  3. {
  4. //обработчик типа
  5. if($_GET['menu'] == 1)
  6. {...}
  7. else//или elseif смотря что нужно
  8. {...}
  9.  
  10. }

 

Powered by ExBB FM 1.0 RC1