- 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