Вопрос Помогите найти ошибку в коде php

Тема в разделе "Веб-разработка", создана пользователем melihovgv, 4 авг 2012.

Статус темы:
Закрыта.
  1. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    Что именно не понимаете?

    Ну вам же нужно, чтобы на первой странице показывался текст, заголовки и т.д., которые берутся из таблицы 'content', тогда на первой странице будет $ID1 = 1;, а в БД 'cat' тоже равно 1. Для второй $ID1= 2; 'cat' тоже равно 2.

    PHP:
    $ID1 1;
    $sql2 "SELECT * FROM `content` WHERE `cat`=$ID1";//выбираем запись с id=переданный_параметр
    $res2 mysql_query($sql2) or die(mysql_error());
    $res2 mysql_query($sql2) or die(mysql_error());

    while(
    $row mysql_fetch_array($res2)) {



    echo 
    "<b>TITLE</b><br>";
    echo 
    $row['title']."<br>";
    echo 
    "<b>h1zagolovok<br></b>";
    echo 
    $row['h1zagolovok']."<br>";
    echo 
    "<b>Контент</b><br>";
    echo 
    $row['contents']."<br>";
    }
    mysql_close($link);  
    Вот такой код для первой странице, а в базе поставьте 1 в 'cat' для тех статей, которые должны быть на первой странице.
  2. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    Неа, согласно всем написанным Вами рекомендациям, выводится только первая страница и все.Принцип меню следующий, выводится меню и первая запись, а после перехода на другую страницу передается гет запрос с номером id. А в моем случае этого не происходит, потому что у меня вырабатывается чпу. Вот я и сижу голову ломаю, как это обойти.
  3. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    PHP:
    <?
            echo
    "<a href=\"".$chpu.".html\">" $row["namemenu"] . "</a>" ;
    ?>
    Если у вас так написано, то не будет передаваться GET-запрос при переходе по меню.

    Даже при переходе на вторую страницу, где:
    PHP:
    $ID1 2;
    $sql2 "SELECT * FROM `content` WHERE `cat`=$ID1";//выбираем запись с id=переданный_параметр
    и в БД в колонке 'cat' стоит 2?

    Я тогда не знаю, в слепую сложно понять, что вы имеете ввиду.
  4. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    Могу выложить скрипт, который формирует меню и бд.
  5. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    Было бы не плохо.
  6. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    PHP:

      $hostName 
    "localhost";  // имя сервера, где работает MySQL    
      
    $userName "root";  // имя пользователя
      
    $password "";  // пароль
      
    $databaseName "mysite"// имя базы данных

    ///////////////////////////////////////////////////////////////

      
    if (!($link=mysql_connect($hostName,$userName,$password))) {
        
    printf("Ошибка при соединении с MySQL !\n");
        exit();
        }
      if (!
    mysql_select_db($databaseName$link)) {
        
    printf("Ошибка базы данных !");
        exit();
        }


        function 
    ShowTree($parent$lvl) {
        
        global 
    $link;
        
    //global $lvl;
        
        
    $lvl++;        
        
        
    //$sql = "SELECT * FROM content WHERE parent = " . $parent . " ORDER BY namemenu";
        
    $sql "SELECT * FROM content  WHERE parent = " $parent " ORDER BY namemenu";
        
        
    $result mysql_query($sql$link);

        if (
    mysql_num_rows($result) > 0) {
        
            echo(
    "<UL>\n");
        while ( 
    $row mysql_fetch_array($result) ) {
            
            
    $ID1 $row["id"];
        
            
    $chpu $row["chpu"];

            echo(
    "<li>");
            
            
            
    //echo "<a href=\"" . "index.php?id=" . $ID1 . "&chpu=".$chpu."&parent=".$parent."\">" . $row["namemenu"] . "</a>" ;
            
    echo "<a href=\"".$chpu.".html\">" $row["namemenu"] . "</a>" ;
            
    //echo"<a href=\"".$chpu.".php?id=". $ID1 ."\">" . $row["namemenu"] . "</a>" ;
            
            
     
            
            
    echo("</li>\n");
            
            
    ShowTree($ID1$lvl); 
            
    $lvl--;
            
        }
            echo(
    "</UL>\n");
        }
        
        }

    //ShowTree(0, 0);
            
             //$id = (isset($_GET['id']))?(int)$_GET['id']:1;
            //$id = (isset($_GET['id']))?(int)$_GET['id']:1;
            
    $ID1=1;
            
    $sql2 "SELECT * FROM content WHERE `cat`=$ID1";
            
    $res mysql_query($sql2);
            
    $res mysql_query($sql2);
            
    $row mysql_fetch_array($res);
     


            
    ShowTree(00);
    mysql_close($link);




    echo 
    $row['title'];
     
    echo 
    $row['h1zagolovok'];

    //echo $row['contents'];
    CREATE TABLE IF NOT EXISTS `content` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `cat` int(11) NOT NULL,
    `parent` int(11) NOT NULL,
    `chpu` varchar(255) NOT NULL,
    `namemenu` varchar(255) NOT NULL,
    `title` varchar(255) NOT NULL,
    `h1zagolovok` varchar(255) NOT NULL,
    `contents` text NOT NULL,
    `description` varchar(255) NOT NULL,
    `keywords` varchar(255) NOT NULL,
    `date` date NOT NULL,
    PRIMARY KEY (`id`),
    UNIQUE KEY `id` (`id`),
    KEY `id_2` (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=86 ;

    ---------- Сообщение добавлено в 21:03 ---------- Предыдущее сообщение размещено в 21:03 ----------

    Вот собственно сам код

    ---------- Сообщение добавлено в 22:36 ---------- Предыдущее сообщение размещено в 21:03 ----------

    Но если такого вида делать ссылку, echo"<a href=\"".$chpu.".php?id=". $ID1 ."\">" . $row["namemenu"] . "</a>" ;
    то получается вида links.php?id=$1 в самом меню, если парсить через мод ретвайр, то как тогда делать запись в само меню?
  7. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    melihovgv, представленный выше код работает только на первой странице? Когда вы переходите на страницу 2 через меню, то есть ли на той странице этот же код, но только $ID1=2; и, конечно же, в базе в 'cat' должна стоять двойка, тогда все должно работать.

    Может вы имели ввиду links.php?id=1 ? Если вы хотите сделать урл такого вида, то это с помощью этой строки
    //$id*=*(isset($_GET['id']))?(int)$_GET['id']:1;
  8. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    Покажите на примере моего кода с cat, я делаю и у меня не получается!
  9. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    А на первой странице достает текст и заголовок из базы? Все работает нормально?
  10. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    $ID1 = 1;
    $sql2 = "SELECT * FROM `content` WHERE `cat`=$ID1";//выбираем запись с id=переданный_параметр
    $res2 = mysql_query($sql2) or die(mysql_error());
    $res2 = mysql_query($sql2) or die(mysql_error());

    Вот так ничего не выводится
  11. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    Вы используете MySQL для создание таблиц в БД или чем-то другим?
  12. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    да использую mysql
  13. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    Скрипт проверил у себя все работает. Возможно, дело в базе, поэтому сделал небольшой скриншот. У вас также в 'cat' ?

    Вложения:

    • MySQL.JPG
      MySQL.JPG
      Размер файла:
      26,4 КБ
      Просмотров:
      236
  14. melihovgv

    melihovgv На форуме с: 25 июл 2011 Сообщения: 1.507

    Можете скинуть исправленный вами код?
    И почему в первой строке cat = 2, а id =3 ???

    ---------- Сообщение добавлено в 10:38 ---------- Предыдущее сообщение размещено в 01:07 ----------

    cat и id должны быть связаны в БД ??
  15. Ami

    Ami Модератор На форуме с: 28 ноя 2011 Сообщения: 259 Команда форума

    Да вот этот код подойдет
    Не должны они быть связаны в id записывается порядковый номер строки, а в cat записывается номер станицы, на которой должен показываться текст.
Статус темы:
Закрыта.