Loading...
Обучение/Помощь новичкам | Самый общительный
Всем привет, хочу в чате сделать фишку отображения самого общительного игрока, как это можно сделать? надо отдельную колонку создать "players" и сделать так, чтобы туда записывало, сколько сообщений написал игрок написал за день? если да, то как это сделать? или можно как-то по проще? сообщения в таблице chat хранятся.
заранее спасибо. + и арбитраж с меня
* Вставь players в таблицу юзер
* Сделай чтобы, за каждое смс в чате, прибавлялся +1 параметр в players
* сделай страницу, где будут отображаться все персы, которые написали больше всех смс
* крон, на обнуление параметра players.
________
посл. ред. 21.10.2017 в 21:00; всего 1 раз(а); by Legenda
Я реанее писал рейт,если нужен алгоритм,то в лс
Zlodey7777 (21.10.2017 в 20:43)
Всем привет, хочу в чате сделать фишку отображения самого общительного игрока, как это можно сделать? надо отдельную колонку создать "players" и сделать так, чтобы туда записывало, сколько сообщений написал игрок написал за день? если да, то как это сделать? или можно как-то по проще? сообщения в таблице chat хранятся.
заранее спасибо. + и арбитраж с меня

Проще будет в таблице с пользователями сделать поле типа mess_count и потом выбирать через ORDER BY `count` DESC LIMIT
Или считаешь количество сообщений пользователя по текущему дню. Я думаю время создания сообщения у тебя присутствует
Avenax (21.10.2017 в 21:03)
Или считаешь количество сообщений пользователя по текущему дню. Я думаю время создания сообщения у тебя присутствует

конечно присутствует
Ну допустим ты создал таблицу msg_count_us со структурой id_user, count

Далее при добавлении поста пользователя ты прибавляешь +1 в колонку count текущего пользователя. Пример:

<?php
// какой-то код постинга
$db->query("UPDATE `msg_count_us` SET `count`=`count`+1 WHERE `id_user`=".$user['id']."");
?>

$user['id'] - ID текущего пользователя (поменять на своё значение)
Теперь тебе например надо вывести ТОП-10 пользователей за сутки:

<?php
$query = $db->query("SELECT `id_user` FROM `msg_count_us` ORDER BY `count` DESC LIMIT 1, 10");
while($us = $query->fetch_assoc()){
echo $us['id'].'<br>';
}
?>

Чтобы выводить возле ника, придётся заморочиться, это можно реализовать проще чем я покажу в следующем примере, но увы у меня нет времени это обдумывать:

<?php
function top_user($id){
$query = $db->query("SELECT `id_user` FROM `msg_count_us` ORDER BY `count` DESC LIMIT 1, 10");
while($us = $query->fetch_assoc()){
if($id==$us['id']){
echo '<img src="icon.png">';
}
}
?>

Использование:

<?php
// Код вывода ника выше
top_user($user['id']);
?>

Для очистки значений, следующий скрипт надо добавить в cron:

<?php
$db->query("UPDATE `msg_count_us` SET `count`=0");
?>

P.S.: насколько я знаю можно это реализовать всё одним запросом в базу, но увы я не силён в sql
________
посл. ред. 21.10.2017 в 21:17; всего 2 раз(а); by TheAlex
Legenda (21.10.2017 в 21:00)
* Вставь players в таблицу юзер
* Сделай чтобы, за каждое смс в чате, прибавлялся +1 параметр в players
* сделай страницу, где будут отображаться все персы, которые написали больше всех смс
* крон, на обнуление параметра players.

спасибо
TheAlex (21.10.2017 в 21:16)
Ну допустим ты создал таблицу msg_count_us со структурой id_user, count

Далее при добавлении поста пользователя ты прибавляешь +1 в колонку count текущего пользователя. Пример:

<?php
// какой-то код постинга
$db->query("UPDATE `msg_count_us` SET `count`=`count`+1 WHERE `id_user`=".$user['id']."");
?>

$user['id'] - ID текущего пользователя (поменять на своё значение)
Теперь тебе например надо вывести ТОП-10 пользователей за сутки:

<?php
$query = $db->query("SELECT `id_user` FROM `msg_count_us` ORDER BY `count` DESC LIMIT 1, 10");
while($us = $query->fetch_assoc()){
echo $us['id'].'<br>';
}
?>

Чтобы выводить возле ника, придётся заморочиться, это можно реализовать проще чем я покажу в следующем примере, но увы у меня нет времени это обдумывать:

<?php
function top_user($id){
$query = $db->query("SELECT `id_user` FROM `msg_count_us` ORDER BY `count` DESC LIMIT 1, 10");
while($us = $query->fetch_assoc()){
if($id==$us['id']){
echo '<img src="icon.png">';
}
}
?>

Использование:

<?php
// Код вывода ника выше
top_user($user['id']);
?>

Для очистки значений, следующий скрипт надо добавить в cron:

<?php
$db->query("UPDATE `msg_count_us` SET `count`=0");
?>

P.S.: насколько я знаю можно это реализовать всё одним запросом в базу, но увы я не силён в sql

спасибо)
VarrkaN , спасибо
Онлайн: 2
Время:
Gen. 0.112
(c) Bym.Guru 2010-2026