Pedro Schneider

Um pouco sobre minha vida, trabalhos, estudos, diversões entre outros!

ORDER BY conforme tua necessidade no MYSQL

Muitas vezes já precisei fazer uma query para trazer um registro, caso não tenha, trazer outro, algumas vezes fiz com UNION e outras SUBQUERYs, sei que a query ficava gigante ou até mesmo “Gabiarrada”.

Mas dessa vez quis otimizar a query e pesquisei um pouco sobre, descobri para o MYSQL uma ótima solução!

Vejamos aqui o antes e o depois de uma query que busca os Banners conforme a seção do site, caso eu não tenha banner na seção produto, traz o da home!

SELECT * FROM site_banner b
JOIN mgr_secao_site ss ON b.SecaoSiteID = ss.SecaoSiteID AND ss.Url = "produto"
WHERE b.Ativo = 1 LIMIT 1
UNION
SELECT * FROM site_banner b
JOIN mgr_secao_site ss ON b.SecaoSiteID = ss.SecaoSiteID AND ss.Url = "home"
WHERE b.Ativo = 1 LIMIT 1

Não que a query acima não funcione, mas é que fica grande, olha só como solucionei usando o IN() e o FIELD():

SELECT * FROM site_banner b
JOIN mgr_secao_site ss ON b.SecaoSiteID = ss.SecaoSiteID AND ss.Url IN ( "produto", "home" )
ORDER BY FIELD( ss.Url, "' . $SecaoSiteUrl . '", "home" ) LIMIT 1;
posted by correaschneider in Desenv,Dicas,MySQL,SQL,Uncategorized and have No Comments

Tabela de RegEx (Expressão Regular)

Olha só essa tabela explicando RegEx.

posted by correaschneider in ASP,ASPX,Desenv,Dicas,Javascript,jQuery,PHP and have No Comments

Forçando download de imagem/arquivos de maneira fácil e rápida!

Forçando download de imagem/arquivos de maneira fácil e rápida!

	header('Content-Description: File Transfer');
	header("Content-type: application/octet-stream");
	header("Content-disposition: attachment; filename= ".$imagem."");
	readfile(site_url( 'uploads/imagens/' . $imagem ));
	die;
posted by correaschneider in Desenv,Dicas,PHP and have No Comments

Estilização e Apresentação de Código

Hoje li um pouco sobre estilização e apresentação de código, e achei esse link:

http://en.wikipedia.org/wiki/Coding_conventions

Muito boa a leitura.

posted by correaschneider in Android,ASP,ASPX,Desenv,Dicas,HTML + CSS,Javascript,jQuery,MySQL,PHP,SQL and have No Comments

Multi Upload – Enviando vários arquivos

Pesquisando no Google, encontrei esse plugin para Upload Multiplo ou Multi Upload!

http://blueimp.github.com/jQuery-File-Upload/

Vale a pena dar uma olha!

posted by correaschneider in Desenv,Dicas,jQuery,PHP,Uncategorized and have No Comments

Programando Url Amigáveis no PHP

Hoje estava testando o gerenciador, e percebi que o PHP tem problemas ao tratar alguns caracteres especias como os do MS Office.

Essa é a função que estava utilizando:

function cleanUrl( $url, $colecaoEscapar = NULL ) {
	$aa = array( 'À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','&','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ý','ý','þ','ÿ',' ','/','*','#','@','!','$','~','`',"'",'"','?','\\','{','}','[',']',':',';','.','','+','=','_','^','|','%','(',')',',' );
	$bb = array( 'a','a','a','a','a','a','a','c','e','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','u','y','b','s','a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','y','y','b','y','-','-','','','','','','','','','','','-','','','','','','','','','','','','','','','','','','' );
 
	if ( !is_null( $colecaoEscapar ) )
 
		foreach( $colecaoEscapar as $escapar ) {
 
			$posicao = array_search( $escapar, $aa );
 
			unset( $aa[ $posicao ], $bb[ $posicao ] );
 
		}
 
	return strtolower( str_replace( $aa, $bb, str_replace( '--', '-', str_replace( ' ', '-', trim( $url ) ) ) ) );
 
}

Porém, está tendo problemas que o PHP não estava fazendo o str_replace nos espaços. Então depois de muita pesquisa, fui no banco de dados onde tava salvo o registro e copiei o espaço que não era substituído.

Minha função resultou nessa: (note a ultima posição do primeiro array)

function cleanUrl( $url, $colecaoEscapar = NULL ) {
 
		$aa = array( 'À','Á','Â','Ã','Ä','Å','Æ','Ç','È','É','Ê','Ë','&','Ì','Í','Î','Ï','Ð','Ñ','Ò','Ó','Ô','Õ','Ö','Ø','Ù','Ú','Û','Ü','Ý','Þ','ß','à','á','â','ã','ä','å','æ','ç','è','é','ê','ë','ì','í','î','ï','ð','ñ','ò','ó','ô','õ','ö','ø','ù','ú','û','ý','ý','þ','ÿ',' ','/','*','#','@','!','$','~','`',"'",'"','?','\\','{','}','[',']',':',';','.','<','>','+','=','_','^','|','%','(',')',',', ' ' ); //este ultimo não é qualquer espaço, é um espaço do MS Office que o PHP não consegue dar replace
 
		$bb = array( 'a','a','a','a','a','a','a','c','e','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','u','y','b','s','a','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','d','n','o','o','o','o','o','o','u','u','u','y','y','b','y','-','-','','','','','','','','','','','-','','','','','','','','','','','','','','','','','','','' );
 
 
 
		if ( !is_null( $colecaoEscapar ) )
 
			foreach( $colecaoEscapar as $escapar ) {
 
				$posicao = array_search( $escapar, $aa );
 
				unset( $aa[ $posicao ], $bb[ $posicao ] );
 
			}
 
 
 
		return strtolower( str_replace( $aa, $bb, str_replace( '--', '-', str_replace( ' ', '-', trim( $url ) ) ) ) );
 
	}
posted by correaschneider in Desenv,Dicas,PHP and have No Comments

Meu próximo abridor de ceva!

posted by correaschneider in Ceva Day,Dicas,Diversos,Video and have No Comments

Galaxy 5 + Android Gingerbread 2.3.7 Review

Opa, tudo tranquilo?

Como havia dito no post anterior sobre o G5, aqui vai o meu review!

Tive resultados positivos quanto:

  1. Bateria: De 1 dia ou 2 dias com App, agora dura uns 3,5 dias sem App!
  2. Velocidade: Antes tinha um monte de App da Samsung e da Tim que consumiam o processamento. Agora (tirando Angry Bird’s) para iniciar é muito rápido!
  3. Configurações: Abriu uma gama de opções para configurações de áudio, resposta a touch, vídeo e skin. Lembrando tudo muito rápido.
Resultado negativo:
  1. Bateria: Quando a bateria chega a 50%, não dura 4 horas. Mas isso já vinha do Android 2.2
  2. Apps: Tem um monte de app já instalados, que eu não vou utilizar e que não consegui remove-los (ainda).

 

posted by correaschneider in Android,Dicas,Diversos and have Comments (2)

Plugin de grande ajuda para teste em formulários(form)!

Anteriormente coloquei aqui um post sobre um gerador de dados para banco!

Agora estou colocando aqui um plugin para Firefox, que preenche os dados dos campos.

Ótimo para testar formulários!

Esse é o link: https://addons.mozilla.org/pt-BR/firefox/addon/forms-data-generator/?src=api

posted by correaschneider in ASP,ASPX,Desenv,Dicas,Firefox,PHP and have No Comments

Dados para teste massivo!

Quantas vezes tu já se parou e pensou:

Para testar essa query vou ter que cadastrar um monte de dados, ah, que se foda, ta funcionando!

É amigos, eis a solução.

http://www.generatedata.com/

O negócio é em PHP, tu pode usar on-line ou fazer download.

Nesta segunda opção tu pode salvar o form!

Bom divertimento!

posted by correaschneider in Desenv,Dicas,MySQL,PHP,SQL and have Comment (1)