Sign in to follow this  
Followers 0
Irakez

Помогите с SQL пожалуйста

5 posts in this topic

Всем привет. Ребята, кто может, помогите пожалуйста с запросом.

 

Хочу на блоге организовать конкурс комментаторов на постоянной основе, но вот в подсчёте нужно сделать ограничение на количество символов в комментариях. Например, чтобы топ подсчитывал и выводил комменты которые более 100 символов или 150 (число любое).

 

Ранее создавал подобную тему, но не тот код кинул :) Понятно, что нужно добавить CHARACTER_LENGTH к запросу к БД, но вот куда и каким образом, так и не пойму. Уже перепробовал массу вариантов по логике и всё никак :(

 

Вот сам код топа комменаторов (поле с комментарием называется comment_content):

function sp_top_commentator(){
global $wpdb;
$length = 0; // количество символов
$length_comments = 0; // количество символов
$month = true; // периодичность обновления
$comment = true; // показатель комментариев
$nofollow = true; // индексация комментариев
$count = 6; // количество комментаторов
$col = 3; // число столбцов
$avatarSize = 70; // размер аватара
$exceptionEmail = ''; // исключение адреса
$results = $wpdb->get_results('
SELECT
COUNT(comment_author_email) AS comments_count, comment_author_email, comment_author, comment_author_url
FROM
(select * from '.$wpdb->comments.' order by comment_ID desc) as pc
WHERE
comment_author_email != "" AND
comment_type = "" AND
comment_approved = 1 AND
comment_author_email NOT IN ('.preg_replace('/([\w\d\.\-_]+@[\w\d\.\-_]+)(,? ?)/','"\\1"\\2',$exceptionEmail).')'.
($month ? 'AND month(comment_date) = month(now()) AND year(comment_date) = year(now())' : '').
'GROUP BY
comment_author_email
ORDER BY
comments_count DESC
LIMIT '.$count
);

В мускул особо не вникал, да и программированием уже несколько лет не занимался.

Заранее благодарен. С уважением, Александр.

Share this post


Link to post
Share on other sites


(select * from '.$wpdb->comments.' order by comment_ID desc) as pc


замените на



(select * from '.$wpdb->comments.' WHERE CHARACTER_LENGTH(колонка комментария) > 100 order by comment_ID desc) as pc


"колонка комментария" замените на нужную колонку, я просто не знаю названия ее, с вп не работал

Irakez likes this

Share this post


Link to post
Share on other sites

Какой смысл сортировки по comment_ID desc если используется групповая выборка по comment_author_email с сортировкой ко кол-ву комментариев?

Share this post


Link to post
Share on other sites

Какой смысл сортировки по comment_ID desc если используется групповая выборка по comment_author_email с сортировкой ко кол-ву комментариев?

Согласен. Код нужно будет подпилить.

Share this post


Link to post
Share on other sites

 

(select * from '.$wpdb->comments.' order by comment_ID desc) as pc
замените на
(select * from '.$wpdb->comments.' WHERE CHARACTER_LENGTH(колонка комментария) > 100 order by comment_ID desc) as pc
"колонка комментария" замените на нужную колонку, я просто не знаю названия ее, с вп не работал

 

Огромное спасибо. Всё работает. С меня палец B)  Ну лайк, в смысле...

 

Тема закрыта.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.