Форум сетевых администраторов
Показаны 2 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Запрос к другой таблице MySQL (скрипт pMachine) (http://netadmin.ws/forum/showthread.php?threadid=8868)


Помещено kuchev 04-06-2004 в 13:54:

Запрос к другой таблице MySQL (скрипт pMachine)

Прошу прощения за дубляж, но специалисты из этого раздела редко смотрят раздел пМашине, ИМХО...

Проблема в следующем: функция most_commented_entries по идее должна выводить статьи, сортируя их по ДАТЕ последнего коммента. Но, она выводит по количеству комментариев.

Вот здесь код из файла stats.fns.php, который отвечает за функцию most_commented_entries движка пМашине.

PHP:


$sql 
= "select post_id,title,weblog,blurb,c_total,c_hits
from 
$db_weblog 
where preview = '0'
and status = 'open'
and t_stamp <= '
$newtime' 
and x_stamp >= '
$newtime' ";

if (
$qtype == "most_comments")
    
$sql .= "and c_total > '0' ";
else
    
$sql .= "and c_hits > '0' ";
  
if (
$which <> "all" and $which <> "")
$sql .= "and weblog = '$which' ";
    
if (
$qtype == "most_comments")
    
$sql .= "order by c_total desc ";
else
    
$sql .= "order by c_hits desc ";
    
if (
$limit <> "")
    
$sql .= "limit $limit";

$query = new DB_query($db, $sql);
    
while (
$query->db_fetch_object()) 
    { 
      
$weblog = $query->obj->weblog;
      
$postid = $query->obj->post_id;

        if (
$qtype == "most_comments")
            
$ctotal = $query->obj->c_total;
        else
            
$ctotal  = $query->obj->c_hits;


Пытался поменять вот эту строчку

PHP:

$sql 
.= "order by c_total desc ";

на эту:
PHP:

$sql 
.= "order by t_stamp desc ";

Естественно, ничего не получилось. Выводится по записи t_stamp из таблицы $db_weblog.

Вопрос: как сделать, чтобы выводилось по записи t_stamp из таблицы $db_comments?

UpDaTeD
Некоторые товарищи предлагали сделать что-то вроде этого:

PHP:

$sql 
.= "order by c_total desc ";  меняем на $sql .= "INNER JOIN $db_comments order by t_stamp desc";

или 

$sql 
.= "INNER JOIN $db_comments ON ".$db_weblog.".t_stamp=".$db_comments.".c_total order by ".$db_weblog.".t_stamp desc";



Но это также не сработало.
С надеждой жду помощи


Помещено SCHIZO 05-06-2004 в 18:11:

функция most_commented_entries своим названием говорит о том что она выводит наиболее_комментируемые_Ð
·аписи
...

чего не нравится то?

P.S.
судя по всему нужна другая функция, а эта работает так как и требуется
...
попробуй сделать "правильный" по твоему мнению запрос в отладчике (GUI типа MySQL CC) или через шелл, сразу станет понятно где копать

__________________
FAQ OFF


Формат времени GMT. Текущее время 14:07.
Показаны 2 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.