Вывод из БД+стили таблиц

Discussion in 'PHP' started by alpotemkin, 9 Dec 2009.

  1. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Доброго времени суток!

    Есть небольшой сайт - самопис. На главной странице выводятся новости из БД. И есть скрипт, который это делает.
    Но появился вопрос: как прикрутить к этому скрипту стили? Т.е. выводить новости по определенному шаблону.

    Скрипт вывода:

    Code:
    <?php
    
    include ('auth.php');
    
    /* Определяем количество сообщений на странице */
    $lim = "10";
    @$page = $_GET['page'];
    /* Меняем table на название вашей таблицы и не забываем указывать дополнительные параметры выборки (если они у вас есть) */
    $res = mysql_query("SELECT COUNT(*) FROM news ORDER BY");
    $row = mysql_fetch_array($res);
    $posts = $row[0];
    $str = ceil($posts/$lim);
    if(empty($page) or $page < 0) $page = 1;
    if($page > $str) $page = $str;
    $start = $page * $lim - $lim;
    /* Дальше подставляете свой код вывода данных из базы в цикле, но обязательно укажите LIMIT $start, $lim */
    $result = mysql_query("SELECT name,text FROM news ORDER BY DESC LIMIT $start, $lim",$db);
    $myrow = mysql_fetch_array($result); 
    $n=mysql_num_rows($result);
    echo "<table border=0>";
    
    // и теперь в цикле выводим построчно
    for($i=0;$i<$n;$i++)
     echo
    "<tr><td><b>",mysql_result($result,$i,name),
    "</b></td><td>",mysql_result($result,$i,text),
    "</td></tr>";
    echo "</table>";
    {printf ("<p>%s</p>",$myrow["title"]);}
    while ($myrow = mysql_fetch_array ($result)); 
    /* Дальше все остается без изменений */
    echo '<a href=?page='. ($page - 1) .'>Назад</a>  ';
    $i=1;
    while ($i <= $str)
    {
    if ($i==$page)
    {echo '<strong><a href=?page='.$i.'>'.$i.'</a></strong> ';}
    else
    {echo '<a href=?page='.$i.'>'.$i.'</a> ';}
    $i = $i+1;
    }
    echo '  <a href=?page='. ($page + 1) .'>Вперед</a>';
    ?>
    Как следует выводить:

    Code:
    <tr valign="top">
    <td class="bgGrey4"><div class="dotBigArr2"><img src="images/big_ar_1.gif" alt="" width="23" border="0" height="15"></div></td>
    <td class="bgGrey4"><img src="images/00_002.gif" alt="" width="10" border="0" height="1"></td>
    <td class="bgGrey4">
    <div class="redTitle">$name</div>
    <div style="margin: 10px 0px;">$text</div>				
    </td>
    <td class="bgGrey4"><img src="images/00_002.gif" alt="" width="30" border="0" height="1"></td>
    </tr>
    Понятно, что нужно копать в

    Code:
    echo "<table border=0>";
    
    // и теперь в цикле выводим построчно
    for($i=0;$i<$n;$i++)
     echo
    "<tr><td><b>",mysql_result($result,$i,name),
    "</b></td><td>",mysql_result($result,$i,text),
    "</td></tr>";
    echo "</table>";
    но все время выдает ошибку. Подскажите, как же сделать, либо дайте пожалуйста ссылку на подобную тему, если она уже была.

    Заранее спасибо за помощь.
     
  2. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    засунь весь html в строковые переменные и меняй их как тебе нужно, вот тебе и вывод в разных шаблонах.
    P.S. Не написал какую ощибку выдаёт. Да и вообще html засунь в tpl и инклудь нужный шаблон, мешать код и html - нетрушно...
     
  3. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Т.е. сделать так?

    Code:
    echo "<table border=0>";
    
    // и теперь в цикле выводим построчно
    for($i=0;$i<$n;$i++)
     echo
    "<tr valign="top">
    <td class="bgGrey4"><div class="dotBigArr2"><img src="images/big_ar_1.gif" alt="" width="23" border="0" height="15"></div></td>
    <td class="bgGrey4"><img src="images/00_002.gif" alt="" width="10" border="0" height="1"></td>
    <td class="bgGrey4">
    <div class="redTitle">",mysql_result($result,$i,date),
    "</div>
    <div style="margin: 10px 0px;">",mysql_result($result,$i,text),
    "</div>				
    </td>
    <td class="bgGrey4"><img src="images/00_002.gif" alt="" width="30" border="0" height="1"></td>
    </tr>";
    echo "</table>";
    Криво выходит и выдает ошибку:
    Code:
    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in X:\home\localhost\www\content\proekts.php on line 103
    Допустим, что я сделаю шаблон .tpl, но как его прикрутить к скрипту?
    Извиняюсь за ламерские вопросы, просто я еще учусь...
     
  4. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Ща посмотрим:
    PHP:
    echo "<table border=0>";

    // и теперь в цикле выводим построчно
    for($i=0;$i<$n;$i++)
     echo
    "<tr valign="top">
    <td class="
    bgGrey4"><div class="dotBigArr2"><img src="images/big_ar_1.gif" alt="" width="23" border="0" height="15"></div></td>
    <td class="
    bgGrey4"><img src="images/00_002.gif" alt="" width="10" border="0" height="1"></td>
    <td class="
    bgGrey4">
    <div class="
    redTitle">",mysql_result($result,$i,date),
    "</div>
    <div style="
    margin10px 0px;">",mysql_result($result,$i,text),
    "</div>                
    </td>
    <td class="
    bgGrey4"><img src="images/00_002.gif" alt="" width="30" border="0" height="1"></td>
    </tr>"
    ;
    echo 
    "</table>";
    У тя на синтаксис пхп жалуется, прошущена либо запятая, либо точка с запятой.

    Мля, внутри попробуй другие кавычки юзать - одинарные!

    PHP:
     echo '<table border=0>'

    // и теперь в цикле выводим построчно 
    for($i=0;$i<$n;$i++) 
     echo 
    '<tr valign="top"> 
    <td class="bgGrey4"><div class="dotBigArr2"><img src="images/big_ar_1.gif" alt="" width="23" border="0" height="15"></div></td> 
    <td class="bgGrey4"><img src="images/00_002.gif" alt="" width="10" border="0" height="1"></td> 
    <td class="bgGrey4"> 
    <div class="redTitle">"'
    .mysql_result($result,$i,date).
    "</div> 
    <div style="margin: 10px 0px;">"'
    .mysql_result($result,$i,text).
    "</div>                 
    </td> 
    <td class="bgGrey4"><img src="images/00_002.gif" alt="" width="30" border="0" height="1"></td> 
    </tr>'

    echo 
    '</table>'
    - разницу видишь?

    Подсветка показывает где html - статика, а где переменные - код php.
     
    #4 -=lebed=-, 9 Dec 2009
    Last edited: 9 Dec 2009
    1 person likes this.
  5. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Вах! И правда, нужно было использовать одинарные кавычки. А я как-то не обратил даже на это внимания...
    Спасибо за подсказку, плюсую. ;)
     
  6. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    и запятая там ни к чему, значения переменных "прилипают" к строкам с помошью точки.
    PHP:
    $var='бла, бла, бла';
    echo 
    'не '.$var;
    Угу, спасибо за +0 :D польщён! :cool:

    P.S. Кстати, на будущее скажу, что всякие перевод строки, табуляция тоже могут сыграть злую шутку...так что советую сплошником делать вывод html, исключая всё не нужное и лишнее.
     
    #6 -=lebed=-, 9 Dec 2009
    Last edited: 9 Dec 2009
  7. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Принял к сведению. Просто где-то вычитал про запятую, вот и пишу ее... И про текст сплошняком тоже запомню.

    Гм... +0?? Я же +10 сделал... о_0
     
    1 person likes this.
  8. -=lebed=-

    -=lebed=- хэшкрякер

    Joined:
    21 Jun 2006
    Messages:
    3,804
    Likes Received:
    1,960
    Reputations:
    594
    Эх... ты пока дух тут как в армии, нету у тебя силы в +10 бить... :D
    P.S. Щас я тебе поставлю, за вопрос, за то что я помог... ;)
     
  9. alpotemkin

    alpotemkin Elder - Старейшина

    Joined:
    7 May 2008
    Messages:
    57
    Likes Received:
    1
    Reputations:
    0
    Хитро-то как... :-D
    Лан, спасибо еще раз за помощь, пойду работать дальше... да php учить. :)