|
|
![]() Hello_Kitty V.I.P. |
Зарегистрирован: 30.04.2007
Сообщений: 10763
|
Обратиться по нику
|
Hello_Kitty |
Ответить с цитатой | | |
|
короче столкнулся с серьезной проблемой, из-за которой соцсеть заглючила (а именно вывод статей).
суппорт движка (Explay CMS) сцуко морозится, делает вид будто он умер.
или типа он никого не хочет видеть и ни с кем не хочет разговаривать.
я в принципе и сам могу разобраться что почём и где подкрутить, нужна
только небольшая подсказка:
Код: |
// Формируем запрос на выбор списка статей
//
public function db_select_list ($options_str, $order, $start, $number) {
$query_string = "SELECT SQL_CACHE
art_id,
art_header,
art_category,
art_body,
art_publik,
art_author,
art_date,
art_image,
art_tags,
art_community,
art_rating,
art_voters,
auto_tag,
art_visible,
category.cat_header,
users.user_name,
users.user_login,
comments.cnt_com,
category.cat_header,
category.cat_description,
category.cat_voters,
category.cat_rating,
category.cat_id
FROM ".DB_PEREFIX."_articles AS articles
LEFT JOIN (
SELECT
cat_id,
cat_name,
cat_header,
cat_description,
cat_rating,
cat_voters
FROM ".DB_PEREFIX."_art_category
) AS category ON articles.art_category = category.cat_name
LEFT JOIN (
SELECT
user_id,
user_name,
user_login
FROM ".DB_PEREFIX."_users
) AS users ON articles.art_author = users.user_id
LEFT JOIN (
SELECT
COUNT(*) AS cnt_com,
com_category,
com_idi
FROM ".DB_PEREFIX."_comments WHERE com_category = 'articles' GROUP BY com_idi
) AS comments ON comments.com_idi = articles.art_id
WHERE ".$options_str." ORDER BY ".$order." DESC LIMIT ".$start.", ".$number;
//print $query_string;
//exit;
return $this->db->query ($query_string);
}
|
вот в этом куске код что означает последняя строка:
Код: |
return $this->db->query ($query_string);
|
???
что это за строчка, для чего она нужна? из-за этой именно строки не выводятся статьи. прикол в том что статьи по одному могут выводиться, а список статей - нет. то есть к примеру как вы можете видеть на блоге тело между сайдбарами, так и в соцсети по этому принципу построены посты.
Код: |
* Строит список комментариев с дополнительными полями
*/
public function build_advanced_articles_comments ($start, $after_url, $order = 'com_rating') {
$db = MySQL::getInstance ();
$query = $db->query ("SELECT SQL_CACHE comment.*, article.art_header, article.art_category, category.cat_header, usr.user_name, usr.user_login FROM ".DB_PEREFIX."_comments AS comment
LEFT JOIN (SELECT art_id, art_header, art_category FROM ".DB_PEREFIX."_articles) AS article ON comment.com_idi = article.art_id
LEFT JOIN (SELECT cat_name, cat_header FROM ".DB_PEREFIX."_art_category) AS category ON category.cat_name = article.art_category
LEFT JOIN (SELECT user_id, user_name, user_login FROM ".DB_PEREFIX."_users) AS usr ON usr.user_id = comment.com_uid
WHERE ".$this->options_str." ORDER BY $order DESC LIMIT $start, 30");
$count_ = $db->fetch_array ($db->query ("SELECT COUNT(com_id) AS cnt FROM ".DB_PEREFIX."_comments WHERE ".$this->options_str));
$count = $count_['cnt'];
if ($count == 0) {
site_error ('Нет комментариев по заданным условиям!');
return;
}
while ($com = $db->fetch_array ($query)) {
$this->display_advanced_comment ($com);
}
if ($count > 3) $this->data .= past_pages($start, 30, $count, '/top/comments/', 'page', $after_url);
unset ($get, $db);
}
|
вот в этом куске что означает
Код: |
WHERE ".$this->options_str." ORDER BY $order DESC LIMIT $start, 30");
|
???
и почему из-за этого ошибка возникает? лимит чего это? можно ли его поднять? и достаточно ли для этого цифру 30 изменить например на 50 или 70? |
|
|
|
|
|
|
![]() Hello_Kitty V.I.P. |
Зарегистрирован: 30.04.2007
Сообщений: 10763
|
Обратиться по нику
|
Hello_Kitty |
Ответить с цитатой | | |
|
в принципе проблему же могут помочь решить php-программисты? не обязательно же быть создателем движка.
он на php написан. что самое странное - в исходнике такой же код, без изменений,
на сайте его никто не правил. все время работал вывод статей отлично.
и вот только месяц назад начал подглюкивать, а теперь и вообще накрылся.
есть еще подозрения что это MySQL база не выдерживает обращений.
а значит пора сменить шаред хостинг на VDS. т.к. хостеры наверное лимиты ограничили.
может быть такое или нет? из изменений происходит только потихонечку увеличивающийся трафик.
больше на сайте особо ничего такого не меняется, ну посты постятся иногда (раз в 4-5 дней).
никто не мог повлиять на ошибку, но и она сама по себе не возникла же из ниоткуда. |
|
|
|
|
|
|
![]() creator123 Гуру |
Зарегистрирован: 25.07.2007
Сообщений: 1145
|
Обратиться по нику
|
creator123 |
Ответить с цитатой | | |
|
да надо смотреть какую ошибку выдает запрос
return $this->db->query ($query_string);
это как раз запрос отсылается в mysql и там что-то идет не так. |
|
|
|
|
|
<----- если понравился пост, жмакай сюды <----- |
![]() brantozawr Опытный |
Зарегистрирован: 10.11.2008
Сообщений: 126
|
Обратиться по нику
|
brantozawr |
Ответить с цитатой | | |
|
Цитата: |
что это за строчка, для чего она нужна?
|
Запрос к MySQL и возврат результата... уберешь - тогда вообще ничего работать не будет
Цитата: |
вот в этом куске что означает
Код:
WHERE ".$this->options_str." ORDER BY $order DESC LIMIT $start, 30");
???
и почему из-за этого ошибка возникает? лимит чего это? можно ли его поднять? и достаточно ли для этого цифру 30 изменить например на 50 или 70?
|
Почему ты считаешь, что ошибка из-за этого? Думаю, это лимит вывода комментов к посту. Т.е. 30 комментов.
У тебя в первом коде есть строки
Код: |
//print $query_string;
//exit;
|
Убери комментарией со строки "print $query_string;" и пришли результат вывода в случае, когда статья выводится одна и когда выводится список. |
|
|
|
|
|
|
![]() Hello_Kitty V.I.P. |
Зарегистрирован: 30.04.2007
Сообщений: 10763
|
Обратиться по нику
|
Hello_Kitty |
Ответить с цитатой | | |
|
creator123, brantozawr, спасибо. попробую разобраться с хостером.
мне кажется там урезали и ущемили лимиты.
потом попробую убрать комментарий, как подсказал brantozawr.
все-таки подозреваю что хостер решил мне затянуть гайки,
возможно придется переехать от него, все-таки виртуал шаред.
если не ответит суппорт хостера и не подтвердит догадку, то буду пробовать варианты решения проблемы.
а если все-таки ничего не поможет, тогда значит по-любому хостинг косячит и съехать придется.
блин, а трафа то всего не более 200 уников в сутки, а социалку уже не выдерживает виртуал.
а еще многие говорили что любая соц.CMS продержится с таким маленьким трафиком на любом виртуале.
оказалось не так. |
|
|
|
|
|
|
![]() Hello_Kitty V.I.P. |
Зарегистрирован: 30.04.2007
Сообщений: 10763
|
Обратиться по нику
|
Hello_Kitty |
Ответить с цитатой | | |
|
хостер взял ответственность на себя, признались что у них лимит на размер обращений к БД
всего 5 Мб и сказали что поднимут плану. скоро все рассосется и заработает.  |
|
|
|
|
|
|
![]() creator123 Гуру |
Зарегистрирован: 25.07.2007
Сообщений: 1145
|
Обратиться по нику
|
creator123 |
Ответить с цитатой | | |
|
можно проверить изменив
WHERE ".$options_str." ORDER BY ".$order." DESC LIMIT ".$start.", ".$number;
на
WHERE ".$options_str." ORDER BY ".$order." DESC LIMIT ".$start.", 1"; |
|
|
|
|
|
<----- если понравился пост, жмакай сюды <----- |
![]() Hello_Kitty V.I.P. |
Зарегистрирован: 30.04.2007
Сообщений: 10763
|
Обратиться по нику
|
Hello_Kitty |
Ответить с цитатой | | |
|
все решилось. хостеры помогли. там среди админов есть рнр-программер.
здорово помог, внес по одной строчке в несколько рнр-файлов. так что теперь все гуд.
и вам всем спасибо за помощь!  |
|
|
|
|
|
|
![]() creator123 Гуру |
Зарегистрирован: 25.07.2007
Сообщений: 1145
|
Обратиться по нику
|
|
|
<----- если понравился пост, жмакай сюды <----- |
![]() Hello_Kitty V.I.P. |
Зарегистрирован: 30.04.2007
Сообщений: 10763
|
Обратиться по нику
|
Hello_Kitty |
Ответить с цитатой | | |
|
jino.ru
кстати это не первый хостер, который быстро отзывается и разруливает проблемы.
а то было время что тут на форуме часто хаяли ру-хостинги.
и я убедился что не перевелись еще на Руси добры-хостеры.
а дело то вообще было и не в хостере, и не в лимите. 5 мб и так хватает.
дело было в самом скрипте. он там стопорился на этой фишке и спрашивал что делать.
ему надо было оказывается утвердить что все в порядке, прописав одну строчку в определенный файл.
и таких файлов, влияющих на ситуацию кардинально, как потом оказалось, несколько.
ну вот в принципе надо было всего лишь прописать по одной строчке в 4-5 файлов и все стало ОК. |
|
|
|
|
|
|
|
|
Партнеры
|