Рейтинг темы:
  • 1 Голос(ов) - 5 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Уважаемые программисты!
#1
Я в своей собственной CMS использую шаблонизатор ( потом перейду ) SMARTY, ну вот и как всегда вискакла проблемка с виводом новостей на главную страничку ( по 10 на 1 страничку ). Кто знает как решить ету проблему отписивайтесь, сейчас использую масиви:
PHP код:
<?php 
if(mysql_num_rows($Q1) >0) {
while(
$r = mysql_fetch_array($Q1)) {
$arr_meta_tags['news'] = array (
'.$id.' => array(
'date' => $r['date_up'],
'author' => $r['autor'],
'title' => $r['title'],
'text' => $r['text'],
'views' => $r['views'],
'id_link' => $r['id']
),);
@
mysql_query("UPDATE tnews SET views=views+1 WHERE id='".$id."'");
$smarty->assign('news',$arr_meta_tags['news']);
$news_tpl = $smarty->fetch("fullstory.tpl");
Извиняюсь я не обяснил саму проблему XD
Так вот на главной страничке, виводит токо 1 значение из таблици...
Ответ
#2
А запрос в $Q1 нам самим отгадать?

Уже все же пора завязывать с mysql_query(), нет обвертки, то стоит написать, взять к примеру DbSimple или использовать PDO.
Ответ
#3
PROGRAMMATOR Написал:А запрос в $Q1 нам самим отгадать?
Извиняюсь не заметил=)
PHP код:
<?php 
$Q1
= mysql_query("SELECT * FROM tnews WHERE date_up <='".date('Y-m-d H:i:s')."' ORDER BY id DESC LIMIT 5 ");
PROGRAMMATOR Написал:Уже все же пора завязывать с mysql_query(), нет обвертки, то стоит написать, взять к примеру DbSimple или использовать PDO.
Я и не думал виводить свой код =) ето простой пример. Но все же спасибо за пост.
Я думал обращаться через функцию базы данных result_array() но еще очень мало о ней знаю.
Ответ
#4
Немного не понял, а почему шаблон называется fullstory, по логике это шаблон полной новости. По запросу, LIMIT 5 устанавливает лимит выборки, в вашем случае 5 записей берёт. И для чего используете WHERE date_up <=?.

Также приведите код шаблона fullstory.tpl
Ответ
#5
получается в запросе выборка по дате - аж до секунды.
проверь - что выдает при таком запросе
Ответ
#6
Это я вижу, больше интересует для чего оно, ведь оно не позволит выбрать новости. Сравнение можно было бы проводить по timestamp записи, но не по 2010-07-30 23:50:10. Там вообще нужно удалить WHERE и оставить только ORDER BY id DESC. Этого достаточно для правильной сортировки новостей.
Ответ
#7
PROGRAMMATOR Написал:Этого достаточно для правильной сортировки новостей.
ВОт именно только для правильной сортировки, вообщето я би их сортовал по дате записи в БД ( вместе с числом и часами...) но оно не работает.
PHP код:
<?php 
{foreach from=$news item=new}
<
div class="mainf"><b>{$new.title}</b></div>
<
div class="inmy"><img src="{$THEME}/img/book.png" alt="" />{$link-category}<img src="{$THEME}/img/date.png" alt="" style="padding-left:15px;" />{$new.date}</div>
<
div class="sscn" width="500">{$new.text}</div><div class="clear"> </div><br />
<
img src="{$THEME}/img/tag.gif" alt="Теги" style="vertical-align:middle; margin:0 10px;" />{$tags}
<
div class="undersl">
<
div style="float:left; width:270px;"><img src="{$THEME}/img/user.png" alt="" style="padding-left:15px;" />{$new.author}<img src="{$THEME}/img/comm.png" style="padding-left:15px;" alt="" />{$comment-num}<img src="{$THEME}/img/wach.png" alt="" style="padding-left:15px;" />{$new.views}</div>
<
div style="float:right;">{$favorites}<img src="{$THEME}/img/edit.png" title="Редактировать публикацию" alt="" /></div></div><div class="clear"> </div>
<
img src="{$THEME}/img/lock.png" style="position:relative; left:20px; margin:30px 0;" alt="" />

<
div class="allg"><div class="mainf2g">Похожие публикации</div><div class="ssc2g relate">{$related-news}</div></div>
<
img src="{$THEME}/img/lock.png" style="position:relative; left:20px; margin:30px 0;" alt="" />
{/foreach}
Ето код fullstory.tpl. PROGRAMMATOR, Я вообщето еще не разобрался с етим поетому на обоих файликах что то делаю, т.е. ето и правда шаблон полной новости, но код позволяет виводить до 5записей на страничку...
DreamCast Написал:получается в запросе выборка по дате - аж до секунды.
проверь - что выдает при таком запросе
Да аж до секунду НО видеш что там стоят 2 знака? <=
Ето значит что оно берет сегодня и прировняет к БД и если там есть нвоости сегонешнего дня, берет его и те новости которие имеют страрую дату...
PHP код:
<?php 
1 ADMIN ADMin test This is testtttttttttttttttttttttttttttttttttttttt
... 2005-03-06 02:03:06 11
2 ADMIN ADMin test2 This is testtttttttttttttttttttttttttttttttttttttt
... 2004-03-05 03:04:05 1
ето примерная структура таблици в БД, видиш там дати какие.

А и еще, если удалить WHERE и оставить токо те параметри, тогда если новость присвоят дату например на следующую неделю, ОН тоже будет виводиться. По етому уходя от 1 проблеми я сталкиваюсь на 2...

А запрос изменил
PHP код:
<?php 
$Q1
= mysql_query("SELECT * FROM tnews WHERE id ='".$id."' ORDER BY date_up DESC LIMIT 5 ");
ето уже не тоSmile
Ответ
#8
да, ты прав. не обратил внимания. Но смысла от этого не больше.
Ответ
#9
Как может работать запрос с условием WHERE id = id и LIMIT 5? Выведет то одну запись.
Ответ
#10
PROGRAMMATOR Написал:Как может работать запрос с условием WHERE id = id и LIMIT 5? Выведет то одну запись.
Ах да, не заметил, поставил LIMIT 0, 10. Но все равно не работает, убрал вообще все И WHERE и ORDER, все равно, виводит токо 1 запись, решил етот вопрос другим способом вивода, а именно напрямую через result_query() в переменную, а в шаблоне описал Foreach...(и т.д. as $row) и вивод такой примерно:
PHP код:
<?=$row->title?><br />
<?=$row->body?>
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)