Плачу с кода

pilot911

Новичок
Плачу с кода

PHP:
/*
	 * Start point for manager
	 */
	
	function index()
	{
		$this->load->library('table');
		$tmpl = array ( 'table_open' => '<table width="96%" border="1" cellpadding="2" cellspacing="1"');
		$this->table->set_template($tmpl);
		
		$view_table = $this->uri->segment(3, 'user');
		 
		switch($view_table)
		{
			case 'user':
						$field_caption = explode("; ", $this->lang->line('field_name_user'));
						$table_caption = $this->lang->line('table_name_user');
						$this->data['add_new'] = '';
						$sql_str = sprintf("SELECT
											CONCAT('<a href=\"/aumanager/edit/user/',auser.id,'\">',auser.name,'</a>') as _edit, 
											email, 
											created, 
											last_visit, 
											aurole.name as arole, 
											augroup.name as agroup,
											CONCAT('<a href=\"#\" 
														onClick=\"if(confirm(&quot;%s&quot;)) location=\'/aumanager/delete/user/',
														auser.id,
														'\';return false;\">%s</a>') as _delete
											FROM auser, aurole, augroup
									WHERE (auser.role_id = aurole.id) and (auser.group_id = augroup.id)", 
									$this->lang->line('request_confirm_delete'),
									$this->lang->line('field_delete'));
						break;
		case 'group':
						$field_caption = explode("; ", $this->lang->line('field_name_group'));
						$table_caption = $this->lang->line('table_name_group');
						$this->data['add_new'] = sprintf("<a href='/aumanager/append/group'>%s</a>", 
														$this->lang->line('add_new_link'));
						$sql_str = sprintf("select
									CONCAT('<a href=\"/aumanager/edit/group/',augroup.id,'\">',augroup.name,'</a>') as _edit,
									CONCAT('<a href=\"#\" 
											onClick=\"if(confirm(&quot;%s&quot;)) location=\'/aumanager/delete/group/',
											augroup.id,
											'\';return false;\">%s</a>') as _delete
									from augroup",
									$this->lang->line('request_confirm_delete'),
									$this->lang->line('field_delete'));
						break;	
		case 'role':
						$field_caption = explode("; ", $this->lang->line('field_name_role'));
						$table_caption = $this->lang->line('table_name_role');
						$this->data['add_new'] = sprintf("<a href='/aumanager/append/role'>%s</a>", 
														$this->lang->line('add_new_link'));
						$sql_str = sprintf("select
									CONCAT('<a href=\"/aumanager/edit/role/',aurole.id,'\">',aurole.name,'</a>') as _edit,
								 	CONCAT('<a href=\"#\" 
								 			onClick=\"if(confirm(&quot;%s&quot;)) location=\'/aumanager/delete/role/',
								 			aurole.id,
								 			'\';return false;\">%s</a>') as _delete
									from aurole", 
									$this->lang->line('request_confirm_delete'),
									$this->lang->line('field_delete'));
						break;
			default: 
						redirect('aumanager');
						break;
		}
		
		$this->table->set_caption("<h2>".$table_caption.'</h2>');
		$this->table->set_heading($field_caption);
		$this->table->set_empty("---");
		$sql = $this->db->query($sql_str);

		$this->data['table'] = $this->table->generate($sql);
		$this->data['table_name_user'] = $this->lang->line('table_name_user');
		$this->data['table_name_group'] = $this->lang->line('table_name_group');
		$this->data['table_name_role'] = $this->lang->line('table_name_role');
		$this->_show_view('users/manager'); 
	}
 

Gas

может по одной?
жесть, помню как я натрахался когда-то с SquirrelMail, там тоже формирование html'я сделано миллионом дурацких функций.
 

zerkms

TDD infected
Команда форума
[sql]
select 'insert into PIMS_RESULT select SAMPLE.SAMPLE_NUMBER, TEST.ANALYSIS, RESULT.NAME, ' +
'RESULT.FORMATTED_ENTRY, SAMPLE.X_PROCESS_UNIT, SAMPLE.PRODUCT, SAMPLE.SAMPLING_POINT, ' +
PIMS.N + ' ' +
'FROM SAMPLE SAMPLE INNER JOIN TEST TEST ON ' +
'SAMPLE.SAMPLE_NUMBER = TEST.SAMPLE_NUMBER INNER JOIN RESULT RESULT ON ' +
'TEST.SAMPLE_NUMBER = RESULT.SAMPLE_NUMBER ' +
'AND TEST.TEST_NUMBER = RESULT.TEST_NUMBER ' +
'WHERE SAMPLE.PRODUCT = ''' + PIMS.PRODUCT + ''' ' +
'AND SAMPLE.SAMPLING_POINT = ''' + PIMS.SAMPLING_POINT + ''' ' +
'AND TEST.ANALYSIS = ''' + PIMS.ANALYSIS + ''' ' +
'AND SAMPLE.STATUS = ''A'' ' +
'AND TEST.STATUS = ''A'' ' +
'AND RESULT.STATUS = ''A'' ' +
'AND RESULT.REPORTABLE = ''T'' ' +
'AND (SAMPLED_DATE >= CONVERT(DATETIME, ''2009-01-01 00:00:01'', 102)) ' +
'AND (SAMPLED_DATE < CONVERT(DATETIME, ''2009-02-01 00:00:01'', 102))'
from PIMS
order by PIMS.ID
[/sql]

родил коллега :) запрос соответственно возвращает коллекцию запросов insert, которые потом также выполняются :)
 

Lightning

Трудоголик
zerkms
Если в хранимую процедуру упаковать, то вполне нормально получится :)
 

zerkms

TDD infected
Команда форума
Lightning
вместо создания View на основе того же запроса - генерить тонну записей ради одного раза во временную таблицу - это не нормально :)
 

Lightning

Трудоголик
zerkms
Да, согласен, я просто не понял что это insert-ы во временную таблицу.
 

zerkms

TDD infected
Команда форума
Lightning
угу, я это изначально не уточнил :) пардон :)
 

nw

Новичок
Да, это CodeIgniter по всем признакам. Только конечно использованный in free way.
 

Vladson

Сильнобухер
Такое часто случается когда новичок (не обязательно нуб, возможно просто человек не работавший с тем или иным ФВ) приходит править чужой код.
Доводилось видеть и не такие перлы (процитировать не могу, не сохранял)
 

vegaplex

Новичок
хз, из всего того, что ты привёл, действительно смешные конструкции только эти:
PHP:
$this->table->set_caption("<h2>".$table_caption.'</h2>');
...
$this->table->set_empty("---");
остальное - уже надоевшие байаны
 

vegaplex

Новичок
Автор оригинала: Lightning
vegaplex
Т.е. HTML в SQL-запросах - это для тебя нормально?
да, поскольку я писал про баяны, и про то, как меня достали стёбы с дерьмокода с этими баяанами, а вот пафасное $this->table->set_caption, а затем "<h2>"...'</h2>' это свежак и подняло настроение ;)
 
Сверху