решено Помогите с запросом в базу

L

ler

Гость
Все верно. Еще дописал немного код. Удалять юзера из группы если карма становится меньше 100
 

Exile

Администратор
Рейтинг считается по формуле исходя из числа отданного, скачанного, отданного на своих и т.д. Считать придется для каждого пользователя по отдельности.
 
L

ler

Гость
Есть такой запрос. Работает быстро. Выдает табличку кто кого поблагодарил и в какой теме
Код:
$sql = "SELECT k.user_id, k.poster_id, k.post_id,k.mode, k.time, u.user_id, u.user_rank, u.user_karma
FROM " . BB_KARMA . " k, " . BB_USERS . " u
        WHERE u.user_id = k.user_id
        AND k.poster_id={$userdata['user_id']}
        ORDER BY k.time DESC";


Решил добавить заголовок темы. И теперь скрипт работает более 10 сек. Можно что сделать?

Код:
$sql = "SELECT k.user_id, k.poster_id, k.post_id,k.mode, k.time, u.user_id, u.user_rank, u.user_karma, n.topic_first_post_id , n.topic_title
FROM " . BB_KARMA . " k, " . BB_USERS . " u, " . BB_TOPICS . " n
        WHERE u.user_id = k.user_id
        AND k.poster_id={$userdata['user_id']}
        AND n.topic_first_post_id=k.post_id
        ORDER BY k.time DESC";
 
L

ler

Гость
Кому интересно есть такая штука

Please Login or Register to view hidden text.



Там есть дизайнер sql запросов с графическим интерфейсом drag n drop. Для нубов в mysql самое то

e28eee784a2f18c1571d29357c8af02b.jpg
Код:
SELECT
  k.post_id,
  k.mode,
  k.time,
  u.username,
  u.user_id,
  p.post_karma,
  u.user_rank,
  u2.username AS k_username,
  u2.user_id AS k_user_id,
  u2.user_rank AS k_user_rank,
  IF(h.post_html IS NULL, pt.post_text, NULL) AS post_text,
  t.topic_title,
  tor.topic_id AS is_release,
  bb_attachments_desc.rating_sum,
  bb_attachments_desc.rating_count,
  bb_attachments_desc.thanks
FROM bb_karma k
  LEFT JOIN bb_users u
    ON u.user_id = k.poster_id
  LEFT JOIN bb_users u2
    ON u2.user_id = k.user_id
  LEFT JOIN bb_posts p
    ON p.post_id = k.post_id
  LEFT JOIN bb_topics t
    ON p.topic_id = t.topic_id
  LEFT JOIN bb_posts_text pt
    ON pt.post_id = k.post_id
  LEFT JOIN bb_posts_html h
    ON h.post_id = k.post_id
  LEFT OUTER JOIN bb_bt_torrents tor
    ON tor.topic_id = t.topic_id
  LEFT JOIN bb_attachments_desc
    ON tor.attach_id = bb_attachments_desc.attach_id
WHERE k.poster_id = $user_id
ORDER BY k.time DESC
LIMIT $start, $per_page
");
 
Сверху