Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Господа гуру PHP программирования нужна ваша помощь (https://forum.antichat.xyz/showthread.php?t=113752)

mss-s 30.03.2009 17:37

Господа гуру PHP программирования нужна ваша помощь
 
Господа гуру PHP программирования нужна ваша помощь
на моиом саите хочу открыть конкурс на самова активнова учасника которыи привлек больше рефералов
у меня 8 уровнеи рефералов на каждом уровне ограниченое количество рефов
нужна сделать статистику первых 3 лидеров по общему числу рефералов с каждова уровня
даные должен брать из таблиц БД

посоветуите скрипт иль кто напишет сложныи скрипт не нужен проста 3 строки с никами лидеров и общем чеслом рефов

Sharky 30.03.2009 17:54

если правильно понял:
Код:

SELECT * FROM [таблица] ORDER BY [столбец с количеством рефов] DESC LIMIT 3

KaZ@NoVa 30.03.2009 18:06

гм.. тут думаю проще всего сделать так..
в таблице завести три колонки id, id рефа, количество рефоф до восьмого уровня включительно..

при добавлении/удалини пользователей - просто пересчитывать у их родителей количество.. и все.. собственно так задача и решится без проблем..

вроде в реализации не должно возникнуть ничего сложного )

Chaak 30.03.2009 18:09

Цитата:

Сообщение от KaZ@NoVa
гм.. тут думаю проще всего сделать так..
в таблице завести три колонки id, id рефа, количество рефоф до восьмого уровня включительно..

при добавлении/удалини пользователей - просто пересчитывать у их родителей количество.. и все.. собственно так задача и решится без проблем..

вроде в реализации не должно возникнуть ничего сложного )

Ага, база с 10к пользователями, каждый раз пересчитывать? Лучше сортировать при выводите(как сказал Sharky) и все.

KaZ@NoVa 30.03.2009 18:15

как раз нет.. у тебя показ будет реже чем добавление/удаление.. верно? ;) небольшой тормоз при этом нормален..
а имея общее количество - показ сделать не тяжело..
если бы не было ограничения на 8 уровней - тогда другой разговор..

а 10к записей.. ну.. это не так и многа на самом деле )
потянет делать нефик )

KaZ@NoVa 30.03.2009 18:17

тем более ты же не все 10к будешь пересчитывать.. а только родителей.. а их на порядок меньше ) :D :D :D :D

Sharky 30.03.2009 18:26

Цитата:

Сообщение от KaZ@NoVa
тем более ты же не все 10к будешь пересчитывать.. а только родителей.. а их на порядок меньше ) :D :D :D :D

это как жрать задницей

KaZ@NoVa 30.03.2009 18:32

нет.. это называется оптимизация..
считать на лету обойдется по времени дороже.. если ресурс посещаем..

mss-s 30.03.2009 19:07

скрипт должен обновлять даные раз в сутки

Pashkela 30.03.2009 19:08

http://cronjob.ru/

KaZ@NoVa 30.03.2009 19:20

ну ды.. либо cron, либо агентов делать ))
крон явно лучше

mss-s 30.03.2009 19:27

я пхп не знаю

вот ниже таблица полизователеи и их древо

table users(id int not null auto_increment, user varchar(15), pass varchar(15), email varchar(100), wmz varchar(13), rang varchar(1), parent varchar(15), parent2 varchar(15), parent3 varchar(15), date date, parent4 varchar(15), primary key(id));");

user - ник полизователя
parent- выше стояшии (типа дистребиютер)
rang- уровени полизователя
id - тут думаю всео понятно

может кто напишет код с меня максимальный +

Pashkela 30.03.2009 19:29

Цитата:

Сообщение от mss-s
может кто напишет код с меня максимальный +

:D :D :D

KaZ@NoVa 30.03.2009 19:42

гм.. чегото мне структура чесгря не совсем нравится..
т.е. я могу добавить еще одно поле для пересчета как говорил )
Писать полностью не буду.. помочь могу..
т.к. насчет писать тут и так .. желающих к сожалению более чем достаточно :(((

Цитата:

Чесгря устаю дико от написания )
слишком сча дофига проектов свалилось.. сезон млин :(
: :rolleyes:

Sharky 30.03.2009 19:43

меня пугает слово "Полизователи" ... чё они лижут..чё у тя там за партнёрка интересно

KaZ@NoVa 30.03.2009 19:46

Просто смотри .. добавь одно поле с целым числом..
на добавление повесь по родителям прибавить один..
на удаление - отнять один,

Цитата:

Если mysql 4 - использую OR, если mysql5 - быстрее будет работать IN
обойтись можно будет всего одним запросом.. на самом деле..
Ну и отдельно один скрипт чтоб подсчитать сейчас общую сумму у каждого..

((ну и всё.. после этого вывести самых активных уже не проблема ))) ;)

mss-s 30.03.2009 19:54

вот вот как идеот подщот статьстьки может переделать и этова

Код:

<tr>
    <th width="121" align="left" scope="row">&nbsp;Участников  -
        <?
    require ("connectdb.inc.php");                                       
        $sql=mysql_query("select*from users");
        $num=mysql_num_rows($sql);
        $sql1=mysql_query("select*from orders");
        $num_nord=mysql_num_rows($sql1);
        $sql2=mysql_query("select*from orders2");
        $old_ord=mysql_num_rows($sql2);
        $sql3 = mysql_query("SELECT * FROM `users` where rang='0'");
        $ur0=mysql_num_rows($sql3);
        $sql4 = mysql_query("SELECT * FROM `users` where rang='1'");
        $ur1=mysql_num_rows($sql4);
        $sql5 = mysql_query("SELECT * FROM `users` where rang='2'");
        $ur2=mysql_num_rows($sql5);
        $sql6 = mysql_query("SELECT * FROM `users` where rang='3'");
        $ur3=mysql_num_rows($sql6);
        $sql7 = mysql_query("SELECT * FROM `users` where rang='4'");
        $ur4=mysql_num_rows($sql7);
        $sql8 = mysql_query("SELECT * FROM `users` where rang='5'");
        $ur5=mysql_num_rows($sql8);
        $sql9 = mysql_query("SELECT * FROM `users` where rang='6'");
        $ur6=mysql_num_rows($sql9);
        $sql10 = mysql_query("SELECT * FROM `users` where rang='7'");
        $ur7=mysql_num_rows($sql10);
        $sql11 = mysql_query("SELECT * FROM `users` where rang='8'");
        $ur8=mysql_num_rows($sql11);
        $sql12=mysql_query("select*from users where date between subdate(now(), interval 0 day) and now()");
        $row00=mysql_num_rows($sql12);
        ?></th>
    <th width="43" align="right" scope="row">
      <?=$num;?>
    </th>
  </tr>
  <tr>
    <th colspan="2" align="right" scope="row"></th>
  </tr>
  <tr>
    <th colspan="2" align="right" scope="row"></th>
  </tr>
  <tr>
    <th align="left"  scope="row">&nbsp;Новых заказов -</th>
    <th align="right" scope="row">
      <?=$num_nord;?>
    </th>
  </tr>
  <tr>
    <th colspan="2" align="right" scope="row"></th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Подтв. заказов -</th>
    <th align="right" scope="row">
      <?=$old_ord;?>
    </th>
  </tr>
  <tr>
    <th colspan="2" scope="row"></th>
  </tr>
  <tr>
    <th colspan="2" scope="row"></th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 0 -</th>
    <th align="right" scope="row">
      <?=$ur0;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 1 -</th>
    <th align="right" scope="row">
      <?=$ur1;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 2 -</th>
    <th align="right" scope="row">
      <?=$ur2;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 3 -</th>
    <th align="right" scope="row">
      <?=$ur3;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 4 -</th>
    <th align="right" scope="row">
      <?=$ur4;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 5 -</th>
    <th align="right" scope="row">
      <?=$ur5;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 6 -</th>
    <th align="right" scope="row">
      <?=$ur6;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 7 -</th>
    <th align="right" scope="row">
      <?=$ur7;?>
    </th>
  </tr>
  <tr>
    <th align="left" scope="row">&nbsp;Уровень 8 -</th>
    <th align="right" scope="row">
      <?=$ur8;?>
    </th>
  </tr>


mss-s 30.03.2009 20:00

ту подшитоваеца сколика на и на каком уровне есть полизователи

KaZ@NoVa 30.03.2009 20:15

Насчет вот этих функций.. эта вообще жесть )))
Я собсно про тоже .. что ничего городить не надо будет.. есил предварительно написать как я сказал..
тогда запрос на рейтинг вообще будет типа

Код HTML:

select * from users order by `название_поля` asc limit 10
или тебе непосредственно добавление/удаление надо? ))Тебе вроде общий рейтинг нужен был?
Вывести топ только самых активных у кого со всех уровней больше всего народу и больше ничего?

mss-s 30.03.2009 20:19

Вывести топ только самых активных у кого со всех уровней больше всего народу и больше ничего

mss-s 30.03.2009 20:21

чтоб показал самых активных гдета 4 - 5 активных пользователей

mss-s 30.03.2009 20:24

не болише 5 проста ник и количество

KaZ@NoVa 30.03.2009 20:26

Цитата:

чтоб показал самых активных гдета 4 - 5 активных пользователей
не болише 5 проста ник и количество
Ну да.. хоть что собственно.. не в этом суть..
главное же как удобнее и быстрее сделать )
алгоритм вроде описал )

Смотри.. все данные у тебя уже есть..
просто приплюсовать при добавлении надо всем родителям по одному..
перед удалением убрать по одному тоже у всех родитлеей..
при выводе просто отсортировать по количеству (которое собственно и подсчитываешь) и вывести столько в топ, сколько тебе надо )
Цитата:

хотя я уже чесгря и не знаю что может быть тут ..

вроде же объяснил.. а непосредственно кодить сирано не буду )

mss-s 30.03.2009 21:45

ребята может кто покажет как а то, я не знаю ни пхп ни mysql
проста напешите какие команды и куда ставить а далише я уш канибуть сам
проста в мне обесняите, а я нефига не понимаю от куда куда
смысол ясен но как релизавать всео это на практике
может дадите пример какои
мне нужна это дело севодня закончить на краиняк завтра

KaZ@NoVa 30.03.2009 22:10

(: Хуею сразу бы сказал... LOL
Забей.

mss-s 30.03.2009 22:52

у меня толька 1$ на кошелке и еслиб была болише яб сразу заказал у кавонить и всио, если зделаите за долар то я с радостию

Sharky 31.03.2009 01:34

Цитата:

Сообщение от KaZ@NoVa
нет.. это называется оптимизация..
считать на лету обойдется по времени дороже.. если ресурс посещаем..

ну да...я в саусе видел серию про ректальное переваривание...типа полезней и всё такое

Sharky 31.03.2009 01:35

Цитата:

Сообщение от mss-s
ребята может кто покажет как а то, я не знаю ни пхп ни mysql
проста напешите какие команды и куда ставить а далише я уш канибуть сам
проста в мне обесняите, а я нефига не понимаю от куда куда
смысол ясен но как релизавать всео это на практике
может дадите пример какои
мне нужна это дело севодня закончить на краиняк завтра

php.net и да прибудет с тобой БОГ

mss-s 31.03.2009 16:25

может дадите какои небуть скрипт где есть штота подобное


Время: 16:46