Господа гуру PHP программирования нужна ваша помощь

Discussion in 'PHP' started by mss-s, 30 Mar 2009.

  1. mss-s

    mss-s New Member

    Joined:
    2 Mar 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    Господа гуру PHP программирования нужна ваша помощь
    на моиом саите хочу открыть конкурс на самова активнова учасника которыи привлек больше рефералов
    у меня 8 уровнеи рефералов на каждом уровне ограниченое количество рефов
    нужна сделать статистику первых 3 лидеров по общему числу рефералов с каждова уровня
    даные должен брать из таблиц БД

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

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    если правильно понял:
    Code:
    SELECT * FROM [таблица] ORDER BY [столбец с количеством рефов] DESC LIMIT 3
     
    1 person likes this.
  3. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    гм.. тут думаю проще всего сделать так..
    в таблице завести три колонки id, id рефа, количество рефоф до восьмого уровня включительно..

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

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

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    Ага, база с 10к пользователями, каждый раз пересчитывать? Лучше сортировать при выводите(как сказал Sharky) и все.
     
    3 people like this.
  5. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    как раз нет.. у тебя показ будет реже чем добавление/удаление.. верно? ;) небольшой тормоз при этом нормален..
    а имея общее количество - показ сделать не тяжело..
    если бы не было ограничения на 8 уровней - тогда другой разговор..

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

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    тем более ты же не все 10к будешь пересчитывать.. а только родителей.. а их на порядок меньше ) :D :D :D :D
     
  7. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    это как жрать задницей
     
    3 people like this.
  8. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    нет.. это называется оптимизация..
    считать на лету обойдется по времени дороже.. если ресурс посещаем..
     
    1 person likes this.
  9. mss-s

    mss-s New Member

    Joined:
    2 Mar 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    скрипт должен обновлять даные раз в сутки
     
  10. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    http://cronjob.ru/
     
    1 person likes this.
  11. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    ну ды.. либо cron, либо агентов делать ))
    крон явно лучше
     
  12. mss-s

    mss-s New Member

    Joined:
    2 Mar 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    я пхп не знаю

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

    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 - тут думаю всео понятно

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

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    :D :D :D
     
  14. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    гм.. чегото мне структура чесгря не совсем нравится..
    т.е. я могу добавить еще одно поле для пересчета как говорил )
    Писать полностью не буду.. помочь могу..
    т.к. насчет писать тут и так .. желающих к сожалению более чем достаточно :(((

    : :rolleyes:
     
  15. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    меня пугает слово "Полизователи" ... чё они лижут..чё у тя там за партнёрка интересно
     
  16. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Просто смотри .. добавь одно поле с целым числом..
    на добавление повесь по родителям прибавить один..
    на удаление - отнять один,

    Ну и отдельно один скрипт чтоб подсчитать сейчас общую сумму у каждого..

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

    mss-s New Member

    Joined:
    2 Mar 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    вот вот как идеот подщот статьстьки может переделать и этова

    Code:
    <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>
     
    1 person likes this.
  18. mss-s

    mss-s New Member

    Joined:
    2 Mar 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    ту подшитоваеца сколика на и на каком уровне есть полизователи
     
  19. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Насчет вот этих функций.. эта вообще жесть )))
    Я собсно про тоже .. что ничего городить не надо будет.. есил предварительно написать как я сказал..
    тогда запрос на рейтинг вообще будет типа

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

    mss-s New Member

    Joined:
    2 Mar 2009
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    Вывести топ только самых активных у кого со всех уровней больше всего народу и больше ничего