Вывод категорий в боковое меню

Владимир23

Привет всем, столкнулся с такой проблемой - не выводятся категории в меню, делал все по примеру (по учебе), пример оказался криворукий, т.е. не сам пример, а кто его писал, поэтому мне немного помогли исправить его, но результат тот же: суть в чем: есть 3 файла index.php, view_cat.php и lefttd.php. Lefttd.php - блок самого бокового меню, в котором отрабатывается скрипт, который вытаскивает записи из таблицы categories. view_cat.php - в этом файле, должно проверятся, передается ли $cat или нет, но вот для чего она, и весь файл я понять не могу. В итоге если вывести значение переменной result, в которой хранятся записи из запроса, то выдается id=8?. Почему так получается я не пойму. view_cat.php:
Кликните здесь для просмотра всего текста
    <?php
        include ("blocks\bd.php");
        if (isset($_GET['cat'])) {$cat=$_GET['cat'];}
        $result = mysql_query ("SELECT * FROM categories WHERE id='$cat'") or die ("<p> Запрос на выборку данных из базы данных не прошел.<br /> <strong>Код ошибки: </strong> </p>".mysql_error());
        /*echo $result;
        /*$myrow = mysql_fetch_array ($result);*/
        /*if (mysql_num_rows ($result))
            $myrow = mysql_fetch_array ($result);
        else 
            die ("<p>Информация из таблиц не может быть извлечена, в таблице нет записей</p>");*/
    ?>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="description" content="<?php echo $myrow ['meta_d']; ?>" />
<meta name="keywords" content="<?php echo $myrow ['meta_k'];?>" />
<title><?php echo "Статьи категории - $myrow[title]";?></title>
<link href="www/style.css" rel="stylesheet" type="text/css" />
<link href="style.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
<center><table width="690" border="1" class="main_border">
  <?php include("blocks\header.php");?>
  <tr>
    <td><table width="690" border="0">
      <tr>
        <td width="175" class="left" style="vertical-align:top">
        <?php include("blocks\lefttd.php");?>
        </td>
        <td valign="top" align="justify" ><?php echo $myrow ['text'];?></td>
      </tr>
    </table></td>
  </tr>
</table></center>
 
</body>
</html>
index.php
Кликните здесь для просмотра всего текста
    <?php
        include ("blocks\bd.php");
        $result = mysql_query ("SELECT * FROM settings WHERE page='index'", $db) or die ("<p> Запрос на выборку данных из базы данных не прошел.<br /> <strong>Код ошибки: </strong> </p>".mysql_error());
        /*$myrow = mysql_fetch_array ($result);*/
        /*echo $result;*/
        if (mysql_num_rows ($result))
            $myrow = mysql_fetch_array ($result);
        else 
            die ("<p>Информация из таблиц не может быть извлечена, в таблице нет записей</p>");
    ?>
    
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>
<?php echo $myrow ['title'];?>
</title>
<link href="www/style.css" rel="stylesheet" type="text/css" />
</head>
 
<body>
<center><table width="690" border="1" class="main_border">
  <?php include("blocks\header.php");?>
  <tr>
    <td><table width="690" border="0">
      <tr>
        <td width="175" class="left" style="vertical-align:top">
        <?php include("blocks\lefttd.php");?>
        </td>
        <td valign="top" align="justify" ><?php echo $myrow ['text'];?></td>
      </tr>
    </table></td>
  </tr>
</table></center>
 
</body>
</html>
и lefttd.php:
Кликните здесь для просмотра всего текста
<div align="center"></div>
    <p align="center" class="title">Категории</p>
<?
    /*mysql_connect("127.0.0.1", "root", "") OR DIE ("Не могу создать подключение");
    mysql_select_db("ksite") or die ("Не могу выбрать базу");*/
    $result2 = mysql_query ("SELECT * FROM categories", $db) or die ("<p> Запрос на выборку данных из базы данных не прошел.<br /> <strong>Код ошибки: </strong> </p>".mysql_error());
    /*$result2 = $db;   mysql_query ("SELECT * FROM categories", $db) 
                or die ("<p> Запрос на выборку данных из базы данных не прошел.<br /> <strong>Код ошибки: </strong> </p>".mysql_error());*/
    echo $result2;      
        
    if (mysql_num_rows ($result2)>0)
        while ($myrow2 = mysql_fetch_array ($result2))
        /*echo $myrow;
            /*printf ("<p><a class='nav_link' href='view_cat.php?cat=$s'>$s</a></p>", $myrow2["id"], $myrow2["title"]);
        /*else
    {
        echo ("<p>Информация из таблиц не может быть извлечена, в таблице нет записей</p>");
        exit();*/
        /*echo $myrow2["title"];*/
    ?>
    
 
    <link href="../style.css" rel="stylesheet" type="text/css" />
    <p align="center" class="title"> 
   Навигация 
</p>          
 </div> <div p="coolmenu"> 
<center> 
</center>  
<center><a href="index.php"><img src="http://www.cyberforum.ru/image/botton1.png" align="center"></a></center> <br> 
<center><a href="http://www.cyberforum.ru/info.php"><img src="http://www.cyberforum.ru/image/botton2.png" align="center"></a></center> <br> 
<center><a href="http://www.cyberforum.ru/wed.php"><img src="http://www.cyberforum.ru/botton3.png" align="center"></a></center> <br> 
<center><a href="http://www.cyberforum.ru/dj.php"><img src="http://www.cyberforum.ru/botton4.png" align="center"></a></center> <br> 
<center><a href="http://www.cyberforum.ru/price.php"><img src="http://www.cyberforum.ru/botton5.png" align="center"></a></center> <br> 
<center><a href="http://www.cyberforum.ru/contact.php"><img src="http://www.cyberforum.ru/botton6.png" align="center"></a></center>
Часть кода в листингах закомментарина
8 ответов

Владимир23

непонял в чем проблема и в каком файле ?


Владимир23

проблема в том, что категории не выводятся в форму, если сделать echo $result в view_cat.php, то получается Recource id=5, а есть echo $result из lefttd.php, то id=8. Насколько я понял, то в список должен генерироваться из lefttd этим скриптом:
<?
    /*mysql_connect("127.0.0.1", "root", "") OR DIE ("Не могу создать подключение");
    mysql_select_db("ksite") or die ("Не могу выбрать базу");*/
    $result2 = mysql_query ("SELECT * FROM categories", $db) or die ("<p> Запрос на выборку данных из базы данных не прошел.<br /> <strong>Код ошибки: </strong> </p>".mysql_error());
    echo $result2;      
        
    if (mysql_num_rows ($result2)>0)
        while ($myrow2 = mysql_fetch_array ($result2))
        
    ?>
в этом скрипте result = 8, но в таблице записей всего 4.


Владимир23

ну в твоем примере ты и не выводишь
<?
    $cats = mysql_query ("SELECT * FROM categories", $db) or die ("<p> Запрос на выборку данных из базы данных не прошел.<br /> <strong>Код ошибки: </strong> </p>".mysql_error());
      
    if (mysql_num_rows($cats)>0)
    {    
        while ($curcat = mysql_fetch_assoc ($cats))     
        {
         echo "<p><a class='nav_link' href='view_cat.php?cat={$curcat['id']}'>{$curcat['tite']}/a></p>";
        }
    }    
    else
    {
        echo "<p>в таблице нет записей</p>";
    }
?>


Владимир23

ну в твоем примере ты и не выводишь
<?
    $cats = mysql_query ("SELECT * FROM categories", $db) or die ("<p> Запрос на выборку данных из базы данных не прошел.<br /> <strong>Код ошибки: </strong> </p>".mysql_error());
      
    if (mysql_num_rows($cats)>0)
    {    
        while ($curcat = mysql_fetch_assoc ($cats))     
        {
         echo "<p><a class='nav_link' href='view_cat.php?cat={$curcat['id']}'>{$curcat['tite']}/a></p>";
        }
    }    
    else
    {
        echo "<p>в таблице нет записей</p>";
    }
?>
счас index.php сругался: Запрос на выборку данных из базы данных не прошел. Код ошибки: Table 'ksite.categoriesresource' doesn't exist


Владимир23

можете закинуть все файлы архивом ?


Владимир23

вот...


Владимир23

$cats = mysql_query ("SELECT * FROM categories". $db)
я не писал с точкой !и зачем вам столько соеденений ? 1 раз в вашем иклюде соеденились и всё - больше не надо


Владимир23

я не писал с точкой !и зачем вам столько соеденений ? 1 раз в вашем иклюде соеденились и всё - больше не надо
мне говорили, что в отдельный файл вынести подключение, и потом подключать его просто... Извиняюсь, очепятался...