Сортировка

Discussion in 'PHP' started by restart_05, 25 Aug 2009.

  1. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Вопрос
    Мне нужно выводить 25 online серверов на 1 странице. Как мне это организовать

    P.S. В базе данных информация online offline сервера не хранится
     
  2. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Если бы все выводило на 1 странице я знаю как выводить только online сервера

    А мне нужно их разделить на страницы чтоб на 1 странице показывало примерно 25 серверов на другой так же и т.д.
     
  3. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    while ( $row = mysql_fetch_assoc($serv) ) {
    ...
    if ($st = "off") {}
    if ($st = "on") { выводит сервера }
    ...
    }
     
  4. diGriz

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

    Joined:
    11 Oct 2006
    Messages:
    138
    Likes Received:
    82
    Reputations:
    6
    Если я правильно тебя понял, ты хочешь сделать постраничный вывод. Гугли по запросам paging на php и php pagination.
     
  5. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Постраничный вывод я сделал, но он отображает все сервера как online так и offline а теперь мне нужно убрать offline и выводить только online
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    restart_05 Вы вначале определитесь, чего вы хотите и что у вас есть. Первый пост - вы говорите что онлайн/оффлайн в бд _НЕ_ хранится, в 4 посте что он там есть. Так если есть - то поправьте запрос к бд "SELECT тратата FROM тратата WHERE столбец_онлайна='ON'"
     
    _________________________
  7. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Мда... в 4 посте я показал свой запрос к базе если бы хранились то это было бы просто, они там не хранятся поэтому и спрашиваю
     
  8. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Бд есть mysql в ней записывается ip port но состояние сервера не сохраняется.
    Мне нужно выводить только online сервера
     
  9. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    $data['status'] = "off";
    $data['status'] = "on";
    if ($data['status'] = "on") {}
    if ($data['status'] = "off") {}
     
  10. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Если не постранично то я могу вывести все online сервера а так хЗ чет не получается
     
  11. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Я делаю выводить по 25 на страницу. Если я ставлю выводить только online сервера, то к примеру если 15 online на странице выведит 15 из 25 а не все 25, а мне нужно чтобы выводило все 25 online
     
  12. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    НУ вначале же надо с бд взять а потом уже выводить вот в этом и проблема
     
  13. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Покажи свой запрос к БД. Если там MySQL или подобное, то достаточно добавить простое условие, давно бы уже помогли. Несколькими постами выше Gifts об этом же сказал.
     
  14. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    $query_my = "SELECT * FROM `list` where type='$game' ORDER BY golos DESC LIMIT $offset,10";
    $serv = mysql_query($query_my, $connect) or die(mysql_error());

    while ( $row_my = mysql_fetch_assoc($serv) ) {

    }
     
  15. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Сделай так для вывода только онлайн-серверов (если поле с информацией о статусе сервера называется status):
    PHP:
    $query_my "SELECT * FROM `list` where type='$game' and status='on' ORDER BY golos DESC LIMIT $offset,10";
     
  16. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    статус не хранится в базе
     
  17. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Тогда это проблемнее, так как мы не знаем, сколько серверов должно быть отображено на страницах, находящихся перед той, которую мы просматриваем. Как вариант - делать полную выборку всех серверов из БД и работать с полученным массивом. Но если их очень много, то это неоптимально. Еще один вариант - на странице при выводе сделать кнопку "Показать/Скрыть сервера оффлайн" для пользователей, ее функционал реализовать на JavaScript.
     
  18. d_x

    d_x Banned

    Joined:
    25 Mar 2008
    Messages:
    558
    Likes Received:
    650
    Reputations:
    210
    Он имеет в виду, что в этом случае на странице будет меньше 10 серверов (т.е. сколько должно было бы быть на странице). Если все сервера на странице будут оффлайн, то вообще пустая страница отобразится, это неприемлемо.
     
    1 person likes this.
  19. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Над этим варинатом я думал но вначале мне кажется нужно решить эту проблему
     
  20. restart_05

    restart_05 Member

    Joined:
    5 May 2009
    Messages:
    164
    Likes Received:
    6
    Reputations:
    0
    Короче ни как да нельзя решить ? надо обязательно выводить в бд
     
    1 person likes this.