- 1
- 2
$id = $this->db->fetchCol('SELECT id FROM data;');
$names = $this->db->fetchCol('SELECT name FROM points INNER JOIN data ON points.id = data.point_id_from;');Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+162
$id = $this->db->fetchCol('SELECT id FROM data;');
$names = $this->db->fetchCol('SELECT name FROM points INNER JOIN data ON points.id = data.point_id_from;');Zend Db usage
+162
$tmp_arr=array();
$id1_str='';
$root_str='';
foreach($id1 as $id){
	$id1_str.=$id['id'].' , ';
	if(!isset($tmp_arr[$id['root']])){
		$root_str.=$id['root'].' , ';
		$tmp_arr[$id['root']]=true;
	}
}
            это типа такой способ собрать distinct root ids в строку!
не забыть потом откусить хвост ' , '
нормальные герои не ищут легких путей
        
+162
//create image array
         $images = array();
         //fill it
         for ($i = 1; $i <= 180; $i++) 
            if (($i != $passimage1)&&($i != $passimage2)&&($i != $passimage3)&&($i != $passimage4)) 
            $images[] = $i;
         //randomize it
         for ($i = 0; $i < 176; $i++) {
            $r = rand(0,175);
            $swap = $images[$r];
            $images[$r] = $images[$i];
            $images[$i] = $swap;
         }
+162
$er = array();
$file1=$config['tpl_dir'].$config['general']['site_template'].'/style/catalog.css';
$file2=$config['tpl_dir'].$config['general']['site_template'].'/module/catalog.html';
$file3=$config['tpl_dir'].$config['general']['site_template'].'/module/catalog_read.html';
$file4='modules/catalog/setup_catalog/table_catalog.MYD';
$file5='modules/catalog/setup_catalog/table_catalog_cats.MYD';
$file6='modules/catalog/setup_catalog/table_catalog_comments.MYD';
$file7='modules/catalog/setup_catalog/table_catalog_rating.MYD';
if(file_exists($file1)==True) {}else{$er[]="нет файла стилей <b>\"catalog.css\"</b> <br> он должен находиться в<b> $file1</b>"; }
if(file_exists($file2)==True) {}else{$er[]="нет файла дизайна <b>\"catalog.html\"</b> <br> он должен находиться в<b> $file2</b>"; }
if(file_exists($file3)==True) {}else{$er[]="нет файла дизайна <b>\"catalog_read.html\"</b> <br> он должен находиться в<b> $file3</b>"; }
if(file_exists($file4)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog.MYD\"</b> <br> он должен находиться в<b> $file4</b>"; }
if(file_exists($file5)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog_cats.MYD\"</b> <br> он должен находиться в<b> $file5</b>"; }
if(file_exists($file6)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog_comments.MYD\"</b> <br> он должен находиться в<b> $file6</b>"; }
if(file_exists($file7)==True) {}else{$er[]="нет файла таблицы <b>\"table_catalog_rating.MYD\"</b> <br> он должен находиться в<b> $file7</b>"; }Установщик модуля. Условия проверки доставляют: бул сравнимаем с булом (и получаем бул), вместо отрицания держим еще одну ветку условия.
+162
function section($sct,$grp = 'all') {
		global $g,$a,$d,$lists,$master_list,$currency;
		$access = ac_section($sct,$this->adminmode);
		if ($access['r'] == 'no' )  {header("Location: /errors/all/403");}
		$master = q1("SELECT * FROM `_s` WHERE `_id`='".$sct."' AND `_l`='".GetLanguage()."'");
		if (isset($_POST['pcounts'])) {
			$_SESSION['_pcount']=(int)$_POST['pcounts'];
		} elseif (isset($_GET['pcounts'])) {
			$_SESSION['_pcount']=(int)$_GET['pcounts'];
		}
		if (isset($_SESSION['_pcount'])) $master['_pcount']=$_SESSION['_pcount'];
        $master_struct = $this->Struct_fields(qa("SHOW COLUMNS FROM `_s`"));
		$grps = qa("SELECT * FROM `_g` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')).((!empty($a[0]['gby']))?(" ORDER BY `".$a[0]['gby']."`".((!empty($a[0]['gdir']))?(' DESC'):(' ASC'))):(" ORDER BY ".$master['_sorting'])).((!empty($a[0]['gfrom']))?(' LIMIT '.$a[0]['gfrom'].','.((!empty($a[0]['gper']))?($a[0]['gper']):((!empty($master['_gcount']))?($master['_gcount']):('10')))):(' LIMIT 0,'.((!empty($a[0]['gper']))?($a[0]['gper']):((!empty($master['_gcount']))?($master['_gcount']):('10'))))));
		$this->cq++;
		$grps_nav_count = qa("SELECT count(*) `c` FROM `_g` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')));
		$grps_len = sizeof($grps);
		$grps_struct = $this->Struct_fields(qa("SHOW COLUMNS FROM `_g`"));
		$pgs = qa("SELECT * FROM `_p` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')).((!empty($a[0]['by']))?(" ORDER BY `".$a[0]['by']."`".((!empty($a[0]['dir']))?(' DESC'):(' ASC'))):(" ORDER BY ".$master['_sorting'])).((!empty($a[0]['from']))?(' LIMIT '.$a[0]['from'].','.((!empty($a[0]['per']))?($a[0]['per']):((!empty($master['_pcount']))?($master['_pcount']):('10')))):(' LIMIT 0,'.((!empty($a[0]['per']))?($a[0]['per']):((!empty($master['_pcount']))?($master['_pcount']):('10'))))));
		$this->cq++;
		$pgs_nav_count = qa("SELECT count(*) `c` FROM `_p` WHERE `_s`='".$sct."' AND `_g`='".$grp."' AND `_l`='".GetLanguage()."'".((!empty($a[0]['con']))?(" AND `header` LIKE '%".$a[0]['con']."%'"):('')));
		$this->cq++;
		$pgs_len = sizeof($pgs);
		$pgs_struct = $this->Struct_fields(qa("SHOW COLUMNS FROM `_p`"));
		$list_g = '';
		$list_p = '';
// Дальше еще строк 200 подобного кода
            Нашел бэкап сайта, который надо было дорабатывать
И это только одна функция одного из классов. Всего около 15 классов, в каждом по 30-40 функций.
При этом есть еще куча файлов вызываемых напрямую(отправка сообщений, добавление/редактирование/удаление данных в админке), хотя и используется mod_rewrite
долго думал, потом переписал нужные куски заново
        
+162
/**/
	TCHAR* szFileType = _T("");
	int ftype = JGetByte( hContact, "AvatarType", PA_FORMAT_UNKNOWN );
	if( ftype == PA_FORMAT_UNKNOWN ) {
		WIN32_FIND_DATA ffd;
		HANDLE hFind = FindFirstFile( ptszDest, &ffd );
		if ( hFind != INVALID_HANDLE_VALUE ) {
			wchar_t* szExt = m_strrchrs( ffd.cFileName, ".\\" );
			if( szExt ) {
				if( !_tcsicmp( szExt, _T(".jpg") ) )
					ftype = PA_FORMAT_JPEG;
				else if( !_tcsicmp( szExt, _T(".png") ) )
					ftype = PA_FORMAT_PNG;
				else if( !_tcsicmp( szExt, _T(".gif") ) )
					ftype = PA_FORMAT_GIF;
				else if( !_tcsicmp( szExt, _T(".bmp") ) )
					ftype = PA_FORMAT_BMP;
				if( ftype != PA_FORMAT_UNKNOWN )
					JSetByte( hContact, "AvatarType", ftype );
			}
			FindClose( hFind );
		}
	}
	switch( ftype ) {
		case PA_FORMAT_JPEG: szFileType = _T("jpg");   break;
		case PA_FORMAT_PNG:  szFileType = _T("png");   break;
		case PA_FORMAT_GIF:  szFileType = _T("gif");   break;
		case PA_FORMAT_BMP:  szFileType = _T("bmp");   break;
	}http://infium.googlecode.com/svn/trunk/Jabber/jabber_misc.cpp
+162
$.ajax({
       url: host + "json/" + action + "/?event-name=" + 
               $("#event-name").val() +  
               "&event-date-from=" + $("#event-date-from").val() + 
               "&event-date-to=" + $("#event-date-to").val() + 
               "&event-place-id=" + $("#event-place-id").val() +
               "&event-id=" + $("#event-id").val() +
               "&event-pls=" + $("#query").val(),Вот, что осталось в наследство от предшественника... И так во всем проекте FUUUUU~~~~~~
+162
//записали значения, от которых отталкиваться будем. Типа первые значения. Почти повторяют столбцы в таблице
$maxv1=303268.26141;
$maxv2=0;
$maxv3=0;
$maxm1=294798.84277;
$maxm2=0;
$maxm3=0;
$maxq=10067.89169;
//а теперь финт ушами - находим сумму полей в таблице
$thisres = mysql_db_query($base, "select * from $Tablename[3]", $link);
while ($thisrow = mysql_fetch_array($thisres)) {
	$maxv1+=0+(float)$thisrow['v1'];  //самая прекрасная часть
	$maxv2+=0+(float)$thisrow['v2'];
	$maxv3+=0+(float)$thisrow['v3'];
	$maxm1+=0+(float)$thisrow['m_in'];
	$maxm2+=0+(float)$thisrow['m_out'];
	$maxm3+=0+(float)$thisrow['m3'];
	$maxq+=0+(float)$thisrow['q'];
}
//и так еще 2 таблицы складываютсяШедевр выдран из творения моего коллеги. Комментарии мои. Задача - найти разницу по каждому полю между двумя последними записями в таблице и результат записать в другую таблицу.
+162
public function action_delete(){   
        if (ORM::factory($_GET['type'], $_GET['id'])->delete())        
            $arr[0] = array("text" => "ok");
        else
            $arr[0] = array("text" => "no");
                                               
        echo json_encode($arr);                               
}Метод контролера (kohana), который используется для ajax запросов. Хоть в нем ничего не проверяется, за то этот метод очень функциональный. С помощью GET request можно удалить из БД практически все!
+162
template <
	typename PropertyOwner // Класс владельца
>
class properties {
public:
	// Получить указатель на владельца по указателю на свойство
	static PropertyOwner * owner( void * property ) { 
		int aai = (int)&(((PropertyOwner*)0)->__properties);
		return (PropertyOwner *)((char*)property - aai);
	}
};
 
/**
 * Шаблон класса свойства
 */
template <
	typename PropertyOwner, // Класс владельца
	typename PropertyType, // Тип свойства
	PropertyType (PropertyOwner::*getter)(), // Геттер
	void (PropertyOwner::*setter)(PropertyType) > // Сеттер
class property {
public:
 
	/**
	 * Чтение свойства - вызов геттера
	 */
	operator PropertyType() {
		return (properties<PropertyOwner>::owner( this )->*getter)();
	}
 
	/**
	 * Запись в свойство - вызов сеттера
	 */
	void operator = ( const PropertyType & value ) {
		(properties<PropertyOwner>::owner( this )->*setter)( value );
	}
};
 
// Макросы для удобного определения свойств /////////
 
/**
 * Начать объявления свойств в классе cls
 */
#define properties_start(cls) union { properties<cls> __properties;
 
/**
 * Закончить объявление свойств в классе cls
 */
#define properties_end() };
 
/**
 * Объявить свойство в классе cls типа type c геттером getter и сеттером setter
 */
#define property(cls,type,getter,setter) property<cls,type,&cls::getter,&cls::setter>
http://www.codenet.ru/progr/cpp/cpp-properties.php