Уважаемые программисты! - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Сообщество Календарь
Вернуться   Форум администраторов игровых серверов > Полезное / Common > Программирование / Programming > PHP

PHP Форум как для начинающих программистов на PHP так и для профессионалов этого дела. Если нужно создать скрипт, функцию и т.д, но не знаете как, спросите у нас и мы вам подскажем. Здесь вы найдете примеры скриптов которые вы сможете использовать на сайтах своих серверов (онлайн, регистрация, семь печатей, топ игроков). Так же много книг и статей.
Описание темы:Только для тех кто знает SMARTY

Ответ
Опции темы
Непрочитано 30.07.2010, 11:49   #11
Аватар для DreamCast
Пользователь

По умолчанию Re: Уважаемые программисты!

$Q1 = mysql_query("SELECT * FROM tnews WHERE date_up <='".date('Y-m-d H:i:s')."' ORDER BY date_up DESC LIMIT 5 ");

сделай запрос напрямую в базу и посмотри - сколько вернет записей.

вначале все верно было.
DreamCast вне форума Ответить с цитированием
Непрочитано 30.07.2010, 12:46   #12
Аватар для Cool_prime
Пользователь

Автор темы (Топик Стартер) Re: Уважаемые программисты!

Цитата:
Сообщение от DreamCast Посмотреть сообщение
$Q1 = mysql_query("SELECT * FROM tnews WHERE date_up <='".date('Y-m-d H:i:s')."' ORDER BY date_up DESC LIMIT 5 ");

сделай запрос напрямую в базу и посмотри - сколько вернет записей.

вначале все верно было.
Возвращает 2 записи, кокраз те которие есть в базе, но когда смотрю на сайт * ( *- тоисть через переменную SMARTY кидаю на шаблон ) виводиться только 1 запись ( 1-вая по ID )
__________________
Сайт - рейтинг серверов WoW
Cool_prime вне форума Ответить с цитированием
Непрочитано 31.07.2010, 12:13   #13
Пользователь

По умолчанию Re: Уважаемые программисты!

Цитата:
Сообщение от Cool_prime Посмотреть сообщение
Ах да, не заметил, поставил LIMIT 0, 10. Но все равно не работает, убрал вообще все И WHERE и ORDER, все равно, виводит токо 1 запись, решил етот вопрос другим способом вивода, а именно напрямую через result_query() в переменную, а в шаблоне описал Foreach...(и т.д. as $row) и вивод такой примерно:
PHP код:
<?=$row->title?><br />
<?=$row->body?>
краткие теги - зло. проверено на опыте.

Цитата:
Сообщение от DreamCast Посмотреть сообщение
$Q1 = mysql_query("SELECT * FROM tnews WHERE date_up <='".date('Y-m-d H:i:s')."' ORDER BY date_up DESC LIMIT 5 ");
сделай запрос напрямую в базу и посмотри - сколько вернет записей.
вначале все верно было.
зачем такой запрос? он полюбому выведет все последние записи и без указания даты. date() без второго аргумента отформатирует текущую дату и запрос эквивалентен
Код:
SELECT * FROM tnews WHERE date_up <= NOW() ORDER BY date_up DESC LIMIT 5
какой в этом толк? все записи итак будут меньше NOW()

Код:
SELECT tnews.* FROM tnews ORDER BY date_up DESC LIMIT 5
Совет топикстартеру - используй ORM вместо generic sql, сократит время на разработку и нервы на отдладку.
Твои запросы с встраиванием переменных непосредственно в запрос могут быть критическими точками без подходящей проверки вводимых данных. Либо используй prepared statements (mysql_prepare/mysqli_prepare)
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Непрочитано 31.07.2010, 15:45   #14
Аватар для Cool_prime
Пользователь

Автор темы (Топик Стартер) Re: Уважаемые программисты!

Цитата:
Сообщение от Aquanox
краткие теги - зло. проверено на опыте.
Наверно что да, но для верстальщика ето будет проще чем вписивать в файл шаблона переменние( или их функции ).

Цитата:
Сообщение от Aquanox
какой в этом толк? все записи итак будут меньше NOW()
Дело не в запросе, я его изменял, даже чистим вивел, решил вопрос вот так:
PHP код:
$result = array();
    
$q mysql_query("SELECT productID FROM ".SPECIAL_OFFERS_TABLE." order by sort_order") or die (mysql_error());
    while (
$row mysql_fetch_row($q))
    {
    
        
$q1 mysql_query("SELECT productID, name, picture, Price FROM ".PRODUCTS_TABLE." where productID=$row[0]") or die (mysql_error());
        if (
$row1 mysql_fetch_row($q1))
        {
            
                
$row1[3] = show_price_new($row1[3]);
                
$result[] = $row1;
            
        }
    }
    
$smarty->assign("special_offers",$result); 
И не верите, все вишло)
__________________
Сайт - рейтинг серверов WoW
Cool_prime вне форума Ответить с цитированием
Непрочитано 02.08.2010, 15:55   #15
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Уважаемые программисты!

Цитата:
Сообщение от Cool_prime
Ах да, не заметил, поставил LIMIT 0, 10
Да я же не о том, тут хоть 1000 в лимит прописать эффект не изменится. Здесь максимум какое условие в WHERE может быть, это типа approve, чтобы проверить, опубликована ли новость, все остальное сортировать по date.

Цитата:
Сообщение от Cool_prime
решил вопрос вот так:
Честно, очень плохо решили.

PHP код:
$row mysql_query('SELECT table1.* FROM table1, table2 WHERE table1.productId = table2.productId'); 
Цитата:
Сообщение от Cool_prime
<?=$row->title?>
Это для этого Smarty устанавливали? Чем не устроил:

PHP код:
{foreach from="$rowitem="news"}
   <
h1>{$news.title}</h1>
   <
p>{$news.body}</p>
{/foreach} 
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 02.08.2010, 16:08   #16
Аватар для Cool_prime
Пользователь

Автор темы (Топик Стартер) Re: Уважаемые программисты!

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Да я же не о том, тут хоть 1000 в лимит прописать эффект не изменится. Здесь максимум какое условие в WHERE может быть, это типа approve, чтобы проверить, опубликована ли новость, все остальное сортировать по date.


Честно, очень плохо решили.

PHP код:
$row mysql_query('SELECT table1.* FROM table1, table2 WHERE table1.productId = table2.productId'); 

Это для этого Smarty устанавливали? Чем не устроил:

PHP код:
{foreach from="$rowitem="news"}
   <
h1>{$news.title}</h1>
   <
p>{$news.body}</p>
{/foreach} 
Если честно то да

Поетому я, сделал так ( код я изменил.) вивод данних почти как ти навел пример=) Но работает! Главное что сейчас не могу разобраться с Пейджером, может поможеш в етой статейке?)
__________________
Сайт - рейтинг серверов WoW
Cool_prime вне форума Ответить с цитированием
Непрочитано 02.08.2010, 16:09   #17
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Уважаемые программисты!

Пейджером - это есть пагинатор?
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 02.08.2010, 16:11   #18
Аватар для Cool_prime
Пользователь

Автор темы (Топик Стартер) Re: Уважаемые программисты!

Цитата:
Сообщение от PROGRAMMATOR
Пейджером - это есть пагинатор?
Да, ето я так его називаю...

Но все равно сути ето не меняет ( почти )...
__________________
Сайт - рейтинг серверов WoW
Cool_prime вне форума Ответить с цитированием
Непрочитано 02.08.2010, 16:15   #19
Аватар для PROGRAMMATOR
Администратор

По умолчанию Re: Уважаемые программисты!

Ну и чего не выходит? Что было сделано для того, чтобы вышло?
__________________
composer require laravel/framework
yarn add vue
PROGRAMMATOR вне форума Отправить сообщение для PROGRAMMATOR с помощью ICQ Отправить сообщение для PROGRAMMATOR с помощью Skype™ Ответить с цитированием
Непрочитано 02.08.2010, 16:27   #20
Аватар для Cool_prime
Пользователь

Автор темы (Топик Стартер) Re: Уважаемые программисты!

Цитата:
Сообщение от PROGRAMMATOR Посмотреть сообщение
Ну и чего не выходит? Что было сделано для того, чтобы вышло?
Сначало... В самом начале, било перерито все поисковики

но я серйезно, в инете не нашел подходящего.

PHP код:
if($_GET['id']=='') {

$cont 'shortstory';
define('CATEGORIES_TABLE''SE_categories');
define('PRODUCTS_TABLE''tnews');
define('SPECIAL_OFFERS_TABLE''SE_special_offers');

$result = array();
    
$q mysql_query("SELECT newsID FROM SE_news WHERE date_up  <='".date('Y-m-d H:i:s')."' order by date_up ") or die (mysql_error());
    while (
$row mysql_fetch_row($q))
    {
        
$q1 mysql_query("SELECT * FROM SE_news WHERE newsID=$row[0]") or die (mysql_error());
        if (
$row1 mysql_fetch_row($q1))
        {
            
                
$row1[3] = substr($row1[3],0,100);
                
$result[] = $row1;
            
        }
    
$result1[] = $row;
    
$smarty->assign("cat",$result1);
    
$smarty->assign("data",$result);
    
$news_tpl $smarty->fetch("shortstory.tpl");
}
$limit 7// кол-во записей на страницу
  
 //выясняем общее кол-во элементов
 
$Query "SELECT COUNT(*) as counts FROM SE_news";
 
$arr mysql_query($Query); //это функция обработки запросов
 
$total_records $arr[counts];
  
 
$sql_start=0;
 
$navigator_string ="";
  
 if (
$total_records>$limit) {    
     if (
$_GET['st']<>"") {$sql_start=$_GET['st']-1;}
     
$request_str $_SERVER["REQUEST_URI"];
     
$pattern "/&st=\d{1,4}/i";
     
$tmpceil($total_records/$limit);
     
$navigator_string ="<span style='font-size:12px'>страницы: ";
     for (
$i=1;$i<=$tmp;$i++) {
         
$replacement "&st=".(($i-1)*$limit+1);
         
$url preg_replace($pattern$replacement$request_str);
         if (!
strpos($url,"&st=")) {$url .= $replacement;}
         if (
$sql_start==($i-1)*$limit) {            
         
$tmp_str "<b>$i </b>";
         } else {            
         
$tmp_str "<a href='$url' style='font-size:12px'>$i </a>";        
         }
         
$navigator_string .= $tmp_str;
     }
     
$navigator_string .= "</span>";
 }
  
  
 
//собственно запрос
 
$Query1 "SELECT * FROM SE_news WHERE newsID=$row[0] LIMIT $sql_start,$limit";
 
$arr mysql_query($Query1);
  
 
 echo 
$navigator_string// странички
 
}
else {
  
    include(
'engine/scripts/fullstory.php');


Посмотрите, ето пока тестовий код, вместе с текущим пейджером.
__________________
Сайт - рейтинг серверов WoW
Cool_prime вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуются java программисты maa Рынок / Marketplace 0 03.01.2010 19:32


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 02:24. Часовой пояс GMT +3.

Вверх