За последние 24 часа нас посетили 20717 программистов и 1825 роботов. Сейчас ищут 976 программистов ...

Таблица и вывод из БД.

Тема в разделе "PHP для новичков", создана пользователем m1fka, 19 июл 2009.

  1. m1fka

    m1fka Активный пользователь

    С нами с:
    25 апр 2009
    Сообщения:
    8
    Симпатии:
    0
    Приветствую, ув. форумчане. Делаю новости для сайта, возникла проблема. Есть полосатая таблица (зебра), в которую нужно вывести новости. У меня получается либо сначала вывод новостей, а затем вывод пустой таблицы-"зебры", либо вывод таблицы, заполненной новостями, но каждая из них повторяется n-ное количество раз. Подскажите, в каком направлении двигаться или где искать ошибку... Код ниже:

    PHP:
    1.  
    2. <?php
    3.                 if (isset($_GET['news']) && !empty($_GET['news']) && ctype_digit($_GET['news'])){
    4.                     $news = (int) $_GET['news'];
    5.                     $sql = "SELECT description, text FROM news WHERE id = '$news'";
    6.                     $res = mysql_query($sql);
    7.                         if($row = mysql_fetch_assoc($res)) {
    8.                             $text = $row['text'];
    9.                             $description = $row['description'];
    10.                             echo "<h3>$description</h3><p>$text</p><a class='back' href='/news.php'><h5>Назад</h5></a>";
    11.                         } else {
    12.                             echo "<p>Страницы с таким id не существует.</p>";
    13.                             }
    14.                 }else {
    15.                         $sql = "SELECT id, description FROM news ORDER BY id DESC";
    16.                         $res = mysql_query($sql);
    17.                         $rows = mysql_num_rows($res);
    18.                             if (!$rows) {
    19.                                 echo "Таблица не существует или введены неверные данные.";
    20.                                 return;
    21.                             }
    22.                         echo "<h3>Новости школы ($rows)</h3>";
    23.                         echo "<table class='news'>";
    24.  
    25.  
    26.  
    27. //Думаю, проблема где-то здесь...Пробовал поместить for в while, но тогда текст повторяется $max_str кол-во раз...
    28.                         $max_str=10;
    29.                         while($row = mysql_fetch_assoc($res)){
    30.                             $id = $row['id'];
    31.                             $description = $row['description'];
    32.                             $uri = $_SERVER['PHP_SELF'];
    33.                             echo "<p>$description<a class='view' href='{$uri}?news=$id'> Читать далее</a></p>";
    34.                         }
    35.                         for ($i=1;$i<=$max_str;$i++) {
    36.                         echo "<tr><td class='".($i%2==0?"news_row_1":"news_row_2")."'>".$i."
    37.                         </td></tr>";
    38.                         }
    39.                     }
    40.                    
    41.  
    42.  
    43.                 echo " </table>";
    44.                 mysql_close ();
    45.             ?>
    46.  
    Надеюсь на вашу помощь..
     
  2. alexeurodnepr

    alexeurodnepr Активный пользователь

    С нами с:
    18 июл 2008
    Сообщения:
    244
    Симпатии:
    0
    ну для начала... 22 строка и 32 не сочетаются. а для конца пользуйтесь print_r or var_dump оч полезно
     
  3. m1fka

    m1fka Активный пользователь

    С нами с:
    25 апр 2009
    Сообщения:
    8
    Симпатии:
    0
    Проблему решил, тему можно закрыть :) Все оказалось оч просто:
    PHP:
    1. <?php                      
    2.  echo "<table class='news'>";
    3.         while($row = mysql_fetch_assoc($res)){
    4.         $id = $row['id'];
    5.         $description = $row['description'];
    6.         $uri = $_SERVER['PHP_SELF'];
    7.         echo "<tr><td class='".($id%2==0?"news_row_1":"news_row_2")."'><a class='view' href='{$uri}?news=$id'><p>$description</p></a></td></tr>";
    8.     }
    9. echo "</table>";
    10. ?>