PDA

Просмотр полной версии : Вывод из БД+стили таблиц


alpotemkin
09.12.2009, 01:42
Доброго времени суток!

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

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

<?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>';
?>

Как следует выводить:

<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>

Понятно, что нужно копать в

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>";

но все время выдает ошибку. Подскажите, как же сделать, либо дайте пожалуйста ссылку на подобную тему, если она уже была.

Заранее спасибо за помощь.

-=lebed=-
09.12.2009, 01:47
засунь весь html в строковые переменные и меняй их как тебе нужно, вот тебе и вывод в разных шаблонах.
P.S. Не написал какую ощибку выдаёт. Да и вообще html засунь в tpl и инклудь нужный шаблон, мешать код и html - нетрушно...

alpotemkin
09.12.2009, 02:03
Т.е. сделать так?

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>";

Криво выходит и выдает ошибку:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in X:\home\localhost\www\content\proekts.php on line 103

Допустим, что я сделаю шаблон .tpl, но как его прикрутить к скрипту?
Извиняюсь за ламерские вопросы, просто я еще учусь...

-=lebed=-
09.12.2009, 02:13
Т.е. сделать так?

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>";

Криво выходит и выдает ошибку:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in X:\home\localhost\www\content\proekts.php on line 103

Допустим, что я сделаю шаблон .tpl, но как его прикрутить к скрипту?
Извиняюсь за ламерские вопросы, просто я еще учусь...

Ща посмотрим:

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>";

У тя на синтаксис пхп жалуется, прошущена либо запятая, либо точка с запятой.

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


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.

alpotemkin
09.12.2009, 02:22
Вах! И правда, нужно было использовать одинарные кавычки. А я как-то не обратил даже на это внимания...
Спасибо за подсказку, плюсую. ;)

-=lebed=-
09.12.2009, 02:26
Вах! И правда, нужно было использовать одинарные кавычки. А я как-то не обратил даже на это внимания...
Спасибо за подсказку, плюсую. ;)

и запятая там ни к чему, значения переменных "прилипают" к строкам с помошью точки.

$var='бла, бла, бла';
echo 'не '.$var;



Спасибо за подсказку, плюсую. ;)
Угу, спасибо за +0 :D польщён! :cool:

P.S. Кстати, на будущее скажу, что всякие перевод строки, табуляция тоже могут сыграть злую шутку...так что советую сплошником делать вывод html, исключая всё не нужное и лишнее.

alpotemkin
09.12.2009, 02:31
и запятая там ни к чему, значения переменных "прилипают" к строкам с помошью точки.

$var='бла, бла, бла';
echo 'не '.$var;



Угу, спасибо за +0 :D польщён! :cool:

Принял к сведению. Просто где-то вычитал про запятую, вот и пишу ее... И про текст сплошняком тоже запомню.

Гм... +0?? Я же +10 сделал... о_0

-=lebed=-
09.12.2009, 02:34
Гм... +0?? Я же +10 сделал... о_0
Эх... ты пока дух тут как в армии, нету у тебя силы в +10 бить... :D
P.S. Щас я тебе поставлю, за вопрос, за то что я помог... ;)

alpotemkin
09.12.2009, 02:45
Эх... ты пока дух тут как в армии, нету у тебя силы в +10 бить... :D
P.S. Щас я тебе поставлю, за вопрос, за то что я помог... ;)

Хитро-то как... :-D
Лан, спасибо еще раз за помощь, пойду работать дальше... да php учить. :)