Или у меня с математикой туго или я прям незнаю....

Тема в разделе "Юмор веб-разработчиков", создана пользователем infoman, 28.10.2008.

  1. infoman
    Offline

    infoman Недавно здесь

    Регистрация:
    28.08.2007
    Сообщения:
    575
    Симпатии:
    12
    Пол:
    Мужской
    простейший цикл
    $stop=10;
    $start=0;
    foreach ($item as $item => $rating)
    {
    $start=$start+1;
    if ($start==$stop){break;}
    }

    где $item свыше 10 значений

    если математика наука точная то если отсчитается 10 значений массива цикл убьётся:stop:
    так вот при тестировании на сервере
    выводилось только 5 записей

    опытным путём установил
    что $stop должнобыть не 10 а 17

    $stop=17;
    $start=0;
    foreach ($item as $item => $rating)
    {
    $start=$start+1;
    if ($start==$stop){break;}
    }

    и только тогда выводится 10 записей
    :D
    или у меня чтото с мозгом:X или что?

    Добавлено через 2 минуты
    зы несмотрите что я так утрирую конечно можно $start++ сделать но я просто прям чтоб развёрнуто показать логику цикла
     
    Последнее редактирование: 28.10.2008
  2.  
  3. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Все работает
    Код (CODE):
    1. <?PHP
    2.  
    3. $items = array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
    4.  
    5. $stop=10;
    6. $start=0;
    7.  
    8. foreach ([B][COLOR="Red"]$items[/COLOR][/B] as $item => $rating)
    9. {
    10.     $start=$start+1;
    11.     if ($start==$stop) {break;}
    12. }
    13.  
    14. var_dump($start,$stop);
    15.  
    16. ?>


    -->>> int(10) int(10)
     
  4. artlebsak
    Offline

    artlebsak Папа Джум ™

    Регистрация:
    13.04.2007
    Сообщения:
    517
    Симпатии:
    15
    Пол:
    Мужской
    И чего это тема желает в разделе юмора? :)
     
  5. Dead Krolik
    Offline

    Dead Krolik специалист

    Регистрация:
    13.04.2007
    Сообщения:
    3 688
    Симпатии:
    101
    Пол:
    Мужской
    Ladm, а вот такой вот он - незатейливый юмор невнимательных пхп'шников.
     
  6. infoman
    Offline

    infoman Недавно здесь

    Регистрация:
    28.08.2007
    Сообщения:
    575
    Симпатии:
    12
    Пол:
    Мужской
    просто у меня всёравно не работает .....
    может потомучто arsort применил?
     
  7. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Пиши весь код...
     
  8. infoman
    Offline

    infoman Недавно здесь

    Регистрация:
    28.08.2007
    Сообщения:
    575
    Симпатии:
    12
    Пол:
    Мужской
    весь не напишу стесняюсь :[

    if (count($items)>0){echo $modulename;
    arsort($items);
    $stop=18;
    $start=0;
    foreach ($items as $item => $rating)
    {
    $start=$start+1;
    echo '<small><a href="'.$mosConfig_live_site.'/component/option,com_******/***Id,'.$item.'/Itemid,29/" target="blank">'.$title.'</a>&nbsp;&nbsp;&nbsp;(Голосов-'.$rating.')</small><br>';
    if ($start==$stop){break;}
    }
    echo '</div>';
    }

    item заменил на items
    выводится 10 записей при $stop=17;
    при $stop=18; выводится 11 записей
    :D вот хоть убей Кролик ты ещё чёнить подчерни (точнее подкрасни где я не прав):D
    скрины при крепляю
    9.JPG
    10.JPG
     
  9. sectus
    Offline

    sectus специалист

    Регистрация:
    19.04.2006
    Сообщения:
    1 210
    Симпатии:
    46
    Пол:
    Мужской
    Будь смелее и пиши весь, и в тегах [ php ][ /php ]
     
  10. infoman
    Offline

    infoman Недавно здесь

    Регистрация:
    28.08.2007
    Сообщения:
    575
    Симпатии:
    12
    Пол:
    Мужской
    sectus
    ну ты меня не понял
    какая разница что там во всём скрипте
    ты смотри в корень
    есть массив:

    ключь itemid значение rating
    пример :
    10=>15
    9=>16
    1=>0
    3=>50
    40=>5

    далее сортируется этот массив ассоциативным сортировщиком в порядке уменьшения
    (нетеряя привязки ключ-значение):
    3=>50
    9=>16
    10=>15
    40=>5
    1=>0

    далее этот отсортированный массив обходим в цикле

    и выводим значения

    при этом в с каждым витком цикла происходит добавление 1 к значению start

    и в конце цикла приверка если старт == стоп то брейк (остановка цикла)

    но блин не работает ;P
    я сам в полной растерянности от сего чуда

    проблемма решена
    всё дело в тестовой информации и базы
    при тестировании добалялись левые рестораны
    и по ним производилось голосование
    а таккак массиф формировался именно из таблицы голосования без предварительной проверки в таблице самих записей то естественно массив содержал излишки голосования.... которые не могли быть выведенны в цикле....
     
    Последнее редактирование: 05.11.2008

Поделиться этой страницей

Загрузка...