2016-02-25 2 views
0

У меня есть этот запрос прямо сейчасMySQL дополнительное условие после того, как INNER JOIN, ON

global $wpdb; 
$interval = "1 WEEK"; 
$now = current_time('mysql'); 
$top4=$wpdb->get_results('SELECT ID, post_title, post_name from `'.$wpdb->prefix.'popularpostssummary`  
INNER JOIN `'.$wpdb->prefix.'posts` ON `postid`=`ID` 
ORDER BY `pageviews` DESC 
LIMIT 4;', ARRAY_A); 

И я хочу добавить следующие условия, что правильный способ добавления их в коде?

WHERE post_type = post 
AND last_viewed > DATE_SUB('{$now}', INTERVAL {$interval}) 

post_type под». $ Wpdb-> prefix.'posts while last_viewed is under '.$wpdb->prefix.'popularpostssummary

ответ

1
global $wpdb; 
$interval = "1 WEEK"; 
$now = current_time('mysql'); 
$sql = 
    'SELECT p.ID, p.post_title, p.post_name 
    FROM `' . $wpdb->prefix . 'popularpostssummary` AS pps 
     INNER JOIN `' . $wpdb->prefix . 'posts` AS p ON pps.`postid`= p.`ID` 
    WHERE p.post_type = "post" 
     AND pps.last_viewed > DATE_SUB("' . $now . '", INTERVAL ' . $interval . ') 
    ORDER BY pps.`pageviews` DESC 
    LIMIT 4;'; 
echo $sql; exit; 
$top4 = $wpdb->get_results($sql, ARRAY_A); 
+0

Спасибо за ответ г-н Пейс, к сожалению, я получаю ошибку сервера 500 –

+0

Я думаю, что одиночные кавычки вокруг '{$ now}' мешали разбору PHP. Я изменил ответ, чтобы мы могли выводить SQL. У вас есть клиент SQL, который можно использовать для запуска запросов к базе данных? –

+0

У меня есть, но как насчет глобального $ wpdb, я думаю, что он не будет работать на клиенте. –