Показ новостей в обратном порядке. php.

Discussion in 'PHP' started by Ru}{eeZ, 6 Dec 2008.

  1. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Маюсь...

    Допустим
    $maxNews = 5;
    count($id) = 100;
    $_GET['page'] = 2;

    новости от 1 и выше
    PHP:
    for($i $maxNews $_GET['page'] - $maxNews$i $maxNews $_GET['page']; $i++) {
    новости от большего к меньшему (недополучается). Тут получается, что новости идут от 100, на первой странице 4 результата, на остальных нормально - 5, а новость под номером 1 вообще не отображается на последней странице (т.е. последняя под номером 2)
    PHP:
        for($i count($id) - $maxNews $_GET['page'] + $maxNews$i count($id) - $maxNews $_GET['page']; $i--) {
     
    #1 Ru}{eeZ, 6 Dec 2008
    Last edited: 6 Dec 2008
  2. Vid0k

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

    Joined:
    24 Dec 2007
    Messages:
    393
    Likes Received:
    125
    Reputations:
    13
    а не легче мускулом отсортировать?!
    SELECT * FROM news sort by id desc
    вроде так поправьте если ошибся
     
  3. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    без мускулов
    *без комментариев*
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    А не поленюсь и повторю еще раз - в цикле считать (count) нельзя, особенно когда много чего считать надо
     
  5. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    так понятнее, естественно, что если о производительности заботиться - я бы вынес, хотя в любом случае бы это сделать, но всётаки хотелось бы получить ответ по теме
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ru}{eeZ Ключевой вопрос - как понумерован массив $id. Первый элемент имеет индекс 1 или 0? Просто в твоем варианте все в общем то верно, для проверки:

    PHP:
    <pre><?
    $maxNews 
    5;
    $id=array_fill(1,100,'Тестовый массив');

    for(
    $i count($id) - $maxNews $_GET['page'] + $maxNews$i count($id) - $maxNews $_GET['page']; $i--) 
    { echo 
    $i."\r\n"; }
    Будет выводить на первой странице номера 100-95, на последней 5-1. Если же массив с нуля, то просто добавить -1 в начальное значение и в условие
     
    _________________________
  7. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    А они равняются на Павла Дурова - только он им гонит, что аякс умеет сортировать ))
    Да, я бы мускуль взял. не хочешь Mysql- иди на Oracle, MSSQL, Access на худкон. Благо альтернатива есть )
     
  8. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Gifts, спасибо)
    бред, бред... у меня база в .txt
    При чём тут Павел Дуров? Ты бы ещё c Лебедовым привёл пример
     
  9. t4Nk

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

    Joined:
    23 Sep 2007
    Messages:
    70
    Likes Received:
    33
    Reputations:
    0
    уж лучше имхо, sqlite использовать чем файлы