Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   PHP (https://forum.zone-game.info/forumdisplay.php?f=125)
-   -   Уважаемые программисты! (https://forum.zone-game.info/showthread.php?t=9329)

Cool_prime 29.07.2010 19:25

Уважаемые программисты!
 
Я в своей собственной CMS использую шаблонизатор ( потом перейду ) SMARTY, ну вот и как всегда вискакла проблемка с виводом новостей на главную страничку ( по 10 на 1 страничку ). Кто знает как решить ету проблему отписивайтесь, сейчас использую масиви:
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 значение из таблици...

PROGRAMMATOR 29.07.2010 19:58

А запрос в $Q1 нам самим отгадать?

Уже все же пора завязывать с mysql_query(), нет обвертки, то стоит написать, взять к примеру DbSimple или использовать PDO.

Cool_prime 29.07.2010 20:21

Re: Уважаемые программисты!
 
Цитата:

Сообщение от PROGRAMMATOR
А запрос в $Q1 нам самим отгадать?

Извиняюсь не заметил=)
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() но еще очень мало о ней знаю.

PROGRAMMATOR 29.07.2010 21:39

Re: Уважаемые программисты!
 
Немного не понял, а почему шаблон называется fullstory, по логике это шаблон полной новости. По запросу, LIMIT 5 устанавливает лимит выборки, в вашем случае 5 записей берёт. И для чего используете WHERE date_up <=?.

Также приведите код шаблона fullstory.tpl

DreamCast 29.07.2010 22:02

Re: Уважаемые программисты!
 
получается в запросе выборка по дате - аж до секунды.
проверь - что выдает при таком запросе

PROGRAMMATOR 29.07.2010 23:46

Re: Уважаемые программисты!
 
Это я вижу, больше интересует для чего оно, ведь оно не позволит выбрать новости. Сравнение можно было бы проводить по timestamp записи, но не по 2010-07-30 23:50:10. Там вообще нужно удалить WHERE и оставить только ORDER BY id DESC. Этого достаточно для правильной сортировки новостей.

Cool_prime 30.07.2010 07:47

Re: Уважаемые программисты!
 
Цитата:

Сообщение от PROGRAMMATOR
Этого достаточно для правильной сортировки новостей.

ВОт именно только для правильной сортировки, вообщето я би их сортовал по дате записи в БД ( вместе с числом и часами...) но оно не работает.
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 код:

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 код:

$Q1 mysql_query("SELECT * FROM tnews WHERE id ='".$id."' ORDER BY date_up DESC LIMIT 5 "); 

ето уже не то:)

DreamCast 30.07.2010 10:23

Re: Уважаемые программисты!
 
да, ты прав. не обратил внимания. Но смысла от этого не больше.

PROGRAMMATOR 30.07.2010 10:26

Re: Уважаемые программисты!
 
Как может работать запрос с условием WHERE id = id и LIMIT 5? Выведет то одну запись.

Cool_prime 30.07.2010 10:51

Re: Уважаемые программисты!
 
Цитата:

Сообщение от PROGRAMMATOR
Как может работать запрос с условием WHERE id = id и LIMIT 5? Выведет то одну запись.

Ах да, не заметил, поставил LIMIT 0, 10. Но все равно не работает, убрал вообще все И WHERE и ORDER, все равно, виводит токо 1 запись, решил етот вопрос другим способом вивода, а именно напрямую через result_query() в переменную, а в шаблоне описал Foreach...(и т.д. as $row) и вивод такой примерно:
PHP код:

<?=$row->title?><br />
<?=$row->body?>



Текущее время: 16:55. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot