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

    +151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $friends = mysql_query("(SELECT * FROM  `friends` WHERE `from` LIKE  '{$act}' AND  `to` LIKE  '{$act}' AND  `isaccepted` =  '1') UNION (SELECT  `id` ,  `name` ,  `surname` FROM  `users_info`);");
    		$friend = array();$loop=0;
    		while($fetch = mysql_fetch_assoc($friends)) {
    			if ($fetch['from'] == $act) $search=$fetch['to']; else $search=$fetch['from'];
    			$friend[$loop]=mysql_fetch_assoc(mysql_query("SELECT `id`,`name`,`surname` FROM `users_info` where `id`='{$search}'"));
    			$loop++;
    		}

    Почему не работает?

    Запостил: yanislavb, 05 Января 2015

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

    • fixed
      $friends = mysql_query("SELECT * from `friends` where `from` LIKE '{$act}' AND `to` LIKE '{$act}' AND `isaccepted` = '1'");
      Ответить
    • тут же не stackoverflow вроде
      Ответить
      • показать все, что скрытоБлядь, человек вопрос задал: потрудись что-нибудь по делу ответить! Ему не важно, стековерфлоу тут или ещё какая нибудь хуйня. Вам должно быть лестно, что Вашему авторитету и опыту доверяют, а Вы чморите этих людей... Разве так бывает?..
        Ответить
        • Может, денег хотите за советы? Эта позиция тоже понятна, какой-нибудь выхухоль будет пользоваться Вашими советами и клепать коммерческие проги, нехорошо, не в духе советских граждан. Но я лично сам за себя сейчас говорю. Шареваре я не пишу, а уж если пишу - долбаю бетонные плиты своей бошкой, не Борманда. Всё таки, совесть есть - жаль, не у всех.
          Ответить
        • Да мне как-то похуй, доверяет ли мне очередной пыхошколотрон.
          Ответить
        • > Блядь, человек вопрос задал
          "Почему не работает" - настолько расплывчатый вопрос, что на него влом отвечать, а телепатия у меня плохо прокачана. Вопросы в такой форме может задавать только секретарша, а не программист.
          Ответить
          • Так что дам только вот такие советы:
            1) Локализуй место, где возникает проблема. Тебе помогут лог сервера, var_dump() и mysql_error().
            2) Если там ошибка мускуля - загугли ее, должно найти пару тредов с аналогичной ситуацией.
            3) Если ошибок не выводится, но код работает неправильно - изучай чего выводят var_dump'ы и сравнивай со своими мыслями.
            4) Если совсем ничего не помогает - можешь задать вопрос, НО, не в форме "почему не работает", которая подразумевает, что ты нихуя не пытался разобраться, а в духе "в строке 115 в цикл ни разу не входит, но никаких ошибок и исключений не возникает".

            P.S. Юзай PDO, заебали уже со своим mysql_* и недоэкранировками.
            Ответить
            • Про дебагер не говори @ vardump советуй @ пыхоламеров плоди
              Ответить
              • Так у пыхи дебаггер есть? Не знал...
                Ответить
                • Разумеется! Запускаем бинарник php из-под gdb.
                  Ответить
                • xdebug, и он на удивление жорош
                  Ответить
                  • Но ведь с ним инклуды тормозят: http://govnokod.ru/17413#comment260759
                    Ответить
                    • вам дебаггер или продакшен?
                      Ответить
                      • У 95% макак это одно и то же.
                        Ответить
                        • А как дела у оставшихся 5% макак?
                          Ответить
                          • Другие 5% отлаживают продакшен средствами других языков.
                            PS. Хуйню сморозил, но да всё равно
                            Ответить
                            • > средствами других языков
                              Больше безумия для бога безумия:
                              <script type="text/javascript">(function() { console.log("<?php var_dump($var); ?>"); })();</script>
                              Жаль, что переносы строк всю идею обосрут ;(
                              Ответить
                              • Вот интересно: в соседнем треде ЛишпГовно всем показывает лямбду, словно экзотическую обезьянку, а у нас в жс это обыденность.

                                Комментарии про скобки (как-то сразу они в глаза бросились) прочитал, да. И порадовался.
                                Ответить
                              • >console.log
                                Вот пользователи осла обрадуются-то...
                                Ответить
                                • > Вот пользователи осла обрадуются-то...
                                  Для них можно предусмотреть alert():
                                  if (!console) {
                                      console = { log: function (s) { alert(s); } }
                                  }
                                  P.S. А в восьмом ie вроде же есть соснолька?
                                  Ответить
                                  • Но, емнип, если соснолька не включена, со typeof console == 'undefined'
                                    Ответить
                                    • > если соснолька не включена, со typeof console == 'undefined'
                                      Ну значит мой код с if (!console) окажется как нельзя кстати. Больше боли и унижений для ослов.
                                      Ответить
                                      • if (!console) {
                                            console = {
                                                log: function (s) {
                                                    alert(s);
                                                    window.location.href = 'http://firefox.com/';
                                                }
                                            }
                                        }
                                        Ответить
                                        • Упростим:
                                          if (!console) {
                                              window.location.href = 'http://firefox.com/';
                                          }
                                          Ответить
                                          • Мне кажется, или IE на фразу !console таки может ругнуться фразой "Javascript Error"? (я знаю, он и не такое может)
                                            Ответить
                                            • Хрен знает, в линухе нет IE :(
                                              Ответить
                                              • Зато есть виртуалочка и желание пострадать хуйнёй вместо работы. -_-
                                                Ответить
                                            • Проверил, таки да, валится, при чем предательски молча.
                                              Ответить
                                              • Т.е. надо через typeof?
                                                Ответить
                                                • Получается так, да. По идее можно еще через !window.console, но тут я хз, как поведут себя другие браузеры.
                                                  Кстати, а IE8 для кого-нибудь еще актуально вообще?
                                                  Ответить
                                                  • Таки да, IE8 (и др.) ещё актуально.
                                                    И таки да, лучше !window.console (другие браузеры переваривают на ура), а ещё лучше - через православное typeof.
                                                    Ответить
                              • Акела промахнулся.
                                Это javascript необратимо extends PHP, а не наоборот.
                                Ответить
                              • Вроде всё пофиксил:
                                function var_dump_to_browser($var) {
                                    ob_start();
                                    var_dump($var);
                                    $data = str_replace(
                                        array("\\", "\"", "\n"),
                                        array("\\\\", "\\\"", "\\n"),
                                        ob_get_contents()
                                    );
                                    ob_end_clean();
                                    ?><script type="text/javascript">(function() { console.log("<?php print $data; ?>"); })();</script><?php
                                }
                                Ответить
                                • >var_dump_to_browser
                                  Какое-то не похапешное название совсем. Вот, например, vdtb_new2() - другое дело.
                                  Ответить
        • Зачем тупорылой пыхобляди помогать? Она даже про pdo не вкурсе!! Зачем дегенератов плодить?
          Ответить
        • Молодцы, опять подлизали.

          Лижет ногу,
                 лижет руку,
          лижет в пояс,
                   лижет ниже,-
          как кутенок
                    лижет
                        суку,
          как котенок
                 кошку лижет.
          А язык?!
              На метров тридцать
          догонять
              начальство
                      вылез -
          мыльный весь,
                   аж может бриться,
          даже
           кисточкой не мылясь.


          ~Новогодный тост~
          ...Говорят, когда пожилым рабочим, строившим многоэтажки, попадаются в руки спичечные коробки, они машинально начинают укладывать их друг на друга - "строят этажку". Пусть же наш с Вами жизненный путь прервётся раньше, чем мы станем мыслить столь же шаблонно.
          Ответить
    • очевидно! луп в ноль поставлен - `$loop=0;` - поэтому и не лупится!
      Ответить
    • 1. Перед строкой №4 ставим var_dump($fetch) и смотрим, что пришло.
      2. А нам точно нужен цикл? А что, если попробовать JOIN или подзапрос?

      Вообще если возникает желание сделать SQL-запрос в цикле, то надо задуматься, правильно ли мы спроектировали алгоритм.
      Ответить
      • > А что, если попробовать JOIN
        Судя по первой строке автор хотел попробовать JOIN. Вот только JOIN и UNION спутал :)
        Ответить
      • Про дебагер не говори @ vardump советуй @ пыхоламеров плоди
        Ответить

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