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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    $sql = "SELECT 
    			t.topic_id							
    		FROM 
    			".Config::Get('db.table.topic')." as t,	
    		WHERE 
    			1=1					
    		LIMIT ?d, ?d";

    5-6 строки мешают уснуть. Из того же LiveStreet..

    Запостил: hybroid, 04 Сентября 2010

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

    • показать все, что скрытопроблема в вашем не понимании, что делает код вида
      WHERE 
      				1=1
      				{AND tt.topic_id NOT IN(?a) }

      для повышения компетенции курите маны http://dklab.ru/lib/DbSimple/
      Ответить
      • Разработчик, залогиньтесь.
        Ответить
      • Не вижу соответствия с показанным мною. Зря вы DbSimple упомянули =) Из соседнего топика могут умыть и DbSimpl'ом, и всем Котеровым..
        PS: Примите с гордостью хоть.. Обратите внимание, что ваш продукт стал ещё популярнее!! Вы же этого хотите? Конечно, не с кошерной стороны, но ведь популярность!
        Ответить
      • надо же. Я в деццтве думал что маны по ПХП лежат на сайте php.net. Оказывается они лежат на домашней страничке какого-то отечественного говнокодера.

        Один мой знакомый программист некоторое время ходит на mysql.ru, думая что там официальные маны по мускулю, и злился что там говно пишут
        Ответить
        • на самом деле, где они только не лежат. и на php.su к примеру, и дохера где еще: http://www.google.com/search?aq=0&oq=htmle&sourceid=chrome&ie= UTF-8&q=htmlentities (достаточно любую пхп-функцию нагуглить)
          Ответить
      • это делают в том случае, когда нет нормальной системы построения запросов, которая учитывает были ли уже условия или нет. Так что это вы должны сходить покурить.
        Ответить
    • а 1=1 это не плейсхолдер? обычно это удобно что бы автоматом добавлять условия вида AND ... OR ...
      Ответить
      • обычно.. в данном случае нет. в данном случае - скорее последствие необдуманного копи-паста. но я всё-таки верю в магию вокруг выражения 1=1! оно ведь даже выглядит мистически!
        Ответить
        • вашего копипаста...
          вы даже не поленились "исправить" код так, чтоб там 1=1 было без дополнительных условий в where, ну чтоб "говно" код выставить в лучшем свете и себя показать
          Ответить
          • теория заговора против LiveStreet? уважаемый, да вы больны!
            Ответить
            • ну что вы
              вот код livestreet - http://trac.lsdev.ru/livestreet/browser/tags/0.4.2
              попробуйте найти там ваш вставленный сюда код, уверен, что не получиться, т.к. он отредактирован вами
              Ответить
              • ну так покопайтесь там =) мне как, автору помощь оказать? боюсь сумма не устроит. уважаемый, вы точно какой-то неадекват =) и ну вас в задницу =)
                Ответить
              • алсо, http://tsya.ru/
                Ответить
              • Вот залез я в первый попавшийся файл, и что же я вижу?

                http://trac.lsdev.ru/livestreet/browser/tags/0.4.2/engine/classes/Plugin.class.php

                В одном классе с невинным названеим Plugin содержатся знания о файловой системе, о формате описания дескриптровой плагинов (xml), о базе данных (причем именно mysql, с захардкоженной функцтей mysql_error) , содержится пара забитых собачкой функций, и 25 раз скопипащено "/plugins/".

                По одному этому файлу видно что Ваш, Максим, проект является говном, даже не смотря на аккуратненькие комментарии на русском.
                Ответить
                • да тут одного метода хватает, даже не вникая в область ответственности и прочее
                  final function GetInherits() {
                  	$aReturn=array();
                  	if(is_array($this->aInherits) and count($this->aInherits)) {
                  		foreach ($this->aInherits as $sObjectName=>$aParams) {                         
                  			if(is_array($aParams) and count($aParams)) {
                  				foreach ($aParams as $sFrom=>$sTo) {
                  					if (is_int($sFrom)) {
                  						$sFrom=$sTo;
                  						$sTo=null;
                  					}
                  					list($sFrom,$sTo)=$this->MakeDelegateParams($sObjectName,$sFrom,$sTo);                                         
                  					$aReturn[$sObjectName][$sFrom]=$sTo;
                  				}
                  			}
                  		}
                  	}
                  	return $aReturn;
                  }
                  Ответить
          • Максим, прекратите хамить человеку, который сделал Вам замечание.

            Лучше будьте ему благодарны. Он показывает Вам Ваши ошибки, и Вы сможете их исправлять и повышать квалификацию. Это поможет Вам в будушем стать настоящим программистом.
            Ответить

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