За последние 24 часа нас посетили 18592 программиста и 1600 роботов. Сейчас ищут 974 программиста ...

Показать список лучших

Тема в разделе "Прочие вопросы по PHP", создана пользователем elagin91, 25 дек 2011.

  1. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Вопрос в следующем:
    Есть база данных mysql, где сохранён ID пользователя и его результаты (int(11))
    Как сделать так, чтобы на одной из страниц сайта, показывалась десятка лучших результатов и их ID
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Лучшие и худшие

    SELECT * FROM `table` ORDER BY `result` DESC LIMIT 10
    SELECT * FROM `table` ORDER BY `result` ASC LIMIT 10
     
  3. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Спасибо.

    P.S. Не знал что такая функция встроена в mysql.
     
  4. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    А если надо вывести лучшие из файла?
    PHP:
    1. $file = file('DATA/users.txt');
    И ответ что то типа
    $file = array('12375|1000' , '23745723|5000' , '237284|0' , '234345|8000' , '87634|10500' , '23445|6300' , '1233454|2100' , '786634|4800' , '324656|0' , '546567|15900' , '456546|19000' , '456567|7400' , '4765765|2100' , '76543|0' , '923434|6300' , '23654|1000' , '84587142|3700');
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Разбиваешь каждую строчку по символу |, создаёшь массив, сортируешь...
     
  6. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    $file = array('12375|1000' , '23745723|5000' , '237284|0' , '234345|8000' , '87634|10500' , '23445|6300' , '1233454|2100' , '786634|4800' , '324656|0' , '546567|15900' , '456546|19000' , '456567|7400' , '4765765|2100' , '76543|0' , '923434|6300' , '23654|1000' , '84587142|3700');

    foreach($file as $as){ $arr[] = explode('|', $as); }

    А сортировать как?
     
  7. karlozzz

    karlozzz Активный пользователь

    С нами с:
    24 окт 2010
    Сообщения:
    430
    Симпатии:
    0
    Адрес:
    Y-OLA
    Google: php сортировка
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    elagin91
    Первое число это что?
     
  9. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Я бы в этом месте сделал по-другому:
    PHP:
    1. <pre>
    2. <?php
    3. $file = array(
    4.     '12375|1000', '23745723|5000', '237284|0', '234345|8000',
    5.     '87634|10500', '23445|6300', '1233454|2100', '786634|4800',
    6.     '324656|0', '546567|15900', '456546|19000', '456567|7400',
    7.     '4765765|2100', '76543|0', '923434|6300', '23654|1000', '84587142|3700'
    8. );
    9. $all = array();
    10. foreach($file as $as) {
    11.     $arr = explode('|', $as);
    12.     $all[$arr[0]] = $arr[1];
    13. }
    14. // По возрастанию
    15. asort($all, SORT_NUMERIC);
    16. print_r($all);
    17. // По убыванию
    18. arsort($all, SORT_NUMERIC);
    19. print_r($all);
    20. ?>
    21. </pre>
    Но это если та часть, которая до | - уникальна.
     
  10. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    sobachnik
    Спасибо