|
|
|
| Сделал вывод данных из таблицы users тупо значения 1, 2, 10
Сложил, умножил, разделил, опять сложил, короче получилось число {$bal}.....!
Далее у меня вывод всех пользователей по дате регистрации:
...................
while ( $r = @mysql_fetch_array( $q ) )
{
echo "$username<br>$bal";
}
....................
|
Получилось 10000 тыщ пользователей и их баллы активности.
<b>Вопрос:</b>КАК отсортировать пользователей по баллам? Ведь $bal - это не значение БД, а из формул расчета их активности!!! | |
|
|
|
|
|
|
|
для: clubxaliav
(19.10.2009 в 01:56)
| | В SQL, однако ж не только требовать данные можно, но и все эти "Сложил, умножил, разделил, опять сложил, короче" делать.
Хотя таки 10 мульенов выстраивать в порядок по произвольному выражению одним индексом не обойтись, а сортировки потребует так или иначе.
И всё ж. | |
|
|
|
|
|
|
|
для: Trianon
(19.10.2009 в 02:05)
| | ну а как sql отсортирует $bal если его нет в БД?
$r["last_date"]= date("j");
$today = date("j");
$nday = $today - $r["last_date"];
if ($nday=="0") {
$nday = "1";
$akt = 100 - ($nday * 3.33 / 10);
}
$send = $r["numsendmails"];
$read = $r["numreadmails"];
$chit = $read * 100 / $send;
$nclick = $r["numclicks"];
$nsurf = $r["numsurf"];
$click = $read + $nclick + $nsurf;
$reting = sprintf("%.0f", ($click * $chit * $akt ) / 1000 );
$bal = $reting;
|
| |
|
|
|
|
|
|
|
для: clubxaliav
(19.10.2009 в 02:13)
| | Причем мне все 10000 пользователей не нужны,. . а хотя бы 100 (соточку активных) | |
|
|
|
|
|
|
|
для: clubxaliav
(19.10.2009 в 02:19)
| | Получается, что информация об активности у вас хранится, а балы за эту активность - понятие как бы абстрактное и высчитывается где-то в скриптах?
Почему бы не добавить столбец в бд bal, куда при каких-то действиях пользователя прибавлять значения, в зависемости от того, сколько это действие "весит"?
Например, зашел на сайт - UPDATE ... SET bal = bal+5
Отметился в теме - UPDATE ... SET bal = bal+1
И тд, а потом из бд доставать
ORDER BY bal DESC LIMIT 100 | |
|
|
|
|
|
|
|
для: neadekvat
(19.10.2009 в 16:25)
| | это хорошо если балл - это тупо балл, а вот если по принципу "если где-то прибыло,то где-то убыло", то лучше уж расчитывать всё в реальном времени (иначе вам каждый раз придётся лопатить всю таблицу), хотя дополнительное поле можно ввести если оно поможет упростить расчёт этого балла. | |
|
|
|
|
|
|
|
для: Valick
(19.10.2009 в 16:58)
| | Сомневаюсь, что сбор данных по разным таблицам, датам и тп будет быстрее и экономичнее, чем один запрос к ячейке бд.
А по поводу "убыло"... Не могу придумать вариант, где бы "убывалось" настолько сложно и запутанно, что было бы проще в каждом скрипте высчитывать этот балл. | |
|
|
|
|
|
|
|
для: neadekvat
(19.10.2009 в 17:06)
| | В принципе понятно, остаеться только все это обмыслить!! приму все таки мысль о дополнительном столбце. | |
|
|
|