1. PHP / Говнокод #3811

    +124

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    <?php
    //вот это наверное самый тупой вывод случаных ссылок из бд
    $zap="select * from stat";$zap=mysql_query($zap);$zap=mysql_num_rows($zap);$id=rand($zap-5,-1);
    $query="select * from stat where (id=$id)";$result=mysql_query($query);$r=mysql_fetch_array($result);$dop=$r[name];$inc=$r[inc];$inc = explode("<|>", $inc);$name=$inc[0];//первая ссылка
    $query="select * from stat where (id=$id+1)";$result=mysql_query($query);$r=mysql_fetch_array($result);$dop2=$r[name];$inc=$r[inc];$inc = explode("<|>", $inc);$name2=$inc[0];//Вторая ссылка
    $query="select * from stat where (id=$id+2)";$result=mysql_query($query);$r=mysql_fetch_array($result);$dop3=$r[name];$inc=$r[inc];$inc = explode("<|>", $inc);$name3=$inc[0];//третья ссылка
    $query="select * from stat where (id=$id+3)";$result=mysql_query($query);$r=mysql_fetch_array($result);$dop4=$r[name];$inc=$r[inc];$inc = explode("<|>", $inc);$name4=$inc[0];//четвертая  ссылка
    $query="select * from stat where (id=$id+4)";$result=mysql_query($query);$r=mysql_fetch_array($result);$dop5=$r[name];$inc=$r[inc];$inc = explode("<|>", $inc);$name5=$inc[0];//пятая ссылка
    ?>
    <a href="<?php echo ("$nhost/stat/$dop/");?>"><?php echo ("$name");?></a>
    <a href="<?php echo ("$nhost/stat/$dop2/");?>"><?php echo ("$name2");?></a>
    <a href="<?php echo ("$nhost/stat/$dop3/");?>"><?php echo ("$name3");?></a>
    <a href="<?php echo ("$nhost/stat/$dop4/");?>"><?php echo ("$name4");?></a> 
    <a href="<?php echo ("$nhost/stat/$dop5/");?>"><?php echo ("$name5");?></a>
    </b>
    <div  class="artif" ></div>

    Запостил: Vasiliy, 29 Июля 2010

    Комментарии (11) RSS

    • О да, охренеть. По-нормальному задачу можно свести к одному sql-запросу.
      Ответить
      • Задача не настолько тривиальна, как кажется.
        Допустим у govnokod.ru дико растет популярность с каждым днем(чего мы очень желаем) и уже через полгода на сайте не 4 тысячи постов с говнокодом, а 100 тысяч, и в среднем по 20 комментариев. Еще в процессе наполнения некоторые комментарии были настолько противны, что их удалял модератор(1%).
        А теперь потребовалось на главную страничку вывести 5 случайных комментариев, Ваше решение?
        Ответить
        • загенреел бы пять цыфер

          и выбрал бы коменты
          Select ..... where id='цифер1' or id='цифер2' .. id='цифер5'
          запрос собрал бы цикле надо 5 значит 5 надо 20 значит 20.
          Ответить
          • Циклы — это очень сложно!
            Ответить
          • Пару замечаний:
            если надо 5 цифр, то генерить надо чуть побольше, и делать Limit 5, некоторых id нет, удалены!

            where id IN(id1,id2,id3...)
            Ответить
            • Можно проверять количество выбранных записей если меньше нужного повторить генерацию чисел сколько не хватат
              Ответить
        • 'SELECT...LIMIT '.rand(0,$max-1).',1'
          Ответить
          • Для данной постановки плохое решение. Работает в сотни раз медленнее.
            При использовании LIMIT , будут пробегаться все записи до точки старта
            Ответить
    • mysql_query( $zap . $ros );
      Ответить
    • explode мозга нах
      Ответить
    • мдась...
      select `field` from `tablename`
      order by rand()
      limit 0,5
      Ответить

    Добавить комментарий