Jump to content


Squall Robert's Content

There have been 53 items by Squall Robert (Search limited from 20/04/2023)



Ordernar por                Order  

#1020015 Mostrar Varios Itens De Session

Posted by Squall Robert on 11/03/2013, 15:07 in PHP

cara o seu foreach esta estranho


da um print_r() da SESSION das keys e posta ai que eu resolvo pra vc.



#1020014 Formulário - Validação Campos

Posted by Squall Robert on 11/03/2013, 15:00 in PHP

Não entendi direito o que vc precisa....
mas se vc precisa checar se todas as variaveis tem alguma valor vc pode fazer assim

if($p3_pergunta_11_a != "" ||$p3_pergunta_11_b != ""  || $p3_pergunta_11_c != "")
{

  // e assim por diante.
  // mas o idela e vc pegar no vetor POST  e ficar checando.

}



#1019811 Somar Parcelas Pagas De Um Membro

Posted by Squall Robert on 18/12/2012, 10:14 in PHP

neste caso e mais simples

vc faz uma subconsulta para somar os valores pagos

pelo que entendi , a tabela que consta os pagos é de 1 pra muitos.

ou seja

SELECT membros.*, (SELECT SUM(valorpago) FROM tabela_pago WHERE id_membro = mebro.id) as valor_pago FROM membros;


mais ou menos isso



#1019401 Charset Para Variáveis Php

Posted by Squall Robert on 13/09/2012, 18:27 in PHP

cada editor tem um charset proprio, que não e mostrado independete do tipo de charset que vc escolheuno codigo fonte, se vc criar o documento com UTF-8 deve resolver com seu codigo...



#1019400 Problema Com Inner Join

Posted by Squall Robert on 13/09/2012, 18:22 in PHP

na verdade o correto e fazer com uma consulta so...
e tratar dentro do laço de reptição


dentro do while ou foreach

vc salva a id da categoria em um variavel e sempre checa

tipo de for = 0 ou diferente da vara que vc criou vc cria o item da lista que corresponde a categoria e adiciona o item nesta lista

se for igal a sua var vc so adiicona a lista

mais ou menos isso.ç..



#1019380 Upload De Imagens Com Redimensionamento De Tamanho Especifico

Posted by Squall Robert on 11/09/2012, 14:09 in PHP

eu criei esta classe pra isso

<?php
/**
 * @author squall
 * @copyright 2009
 */
class Thumbs
{
	//variaveis necessárias para gerar thumbs
	public $caminho;
	public $nome ;
	public $largura_max;
	public $altura_max;
	public $arquivo;
	public $ext;
	public $tipo ;
	public $ImagemGerada;
	public function Thumbs()
	{
		// definindo valores padrão de variaveis
		$this->tipo = 1;
		$this->nome = date('YmdHis');
		$this->altura_max = 80;
		$this->largura_max = 250;
	}
	//preparando imagem
	public function Prepare()
	{
		// verifica imagem se existe
		if(file_exists($this->arquivo))
		{
			// gerando nome da nova imagem
			$this->NomeImagem();
            if($this->arquivo != $this->ImagemGerada)
            {
                $img_tamanho = @getimagesize($this->ImagemGerada);
                
                if(!file_exists($this->ImagemGerada) || $img_tamanho[0] > $this->largura_max || $img_tamanho[1] > $this->altura_max)
    			{
    					// pegando extensão da imagem
    					$this->ext = substr($this->arquivo,-3);
    					// verificando se o caminho e existente/ se não cria diretório
    					$this->CriarDir();
    					// gerando imagem
    
    					$this->Gerar();
    
    					return $this->ImagemGerada;
    			}
    			else
    				return $this->ImagemGerada; // retorno da imagem existente
            }
            else
            {
    			// pegando tamanho da imagem
    			$img_tamanho = @getimagesize($this->arquivo);
    			if(!file_exists($this->ImagemGerada) || $img_tamanho[0] > $this->largura_max || $img_tamanho[1] > $this->altura_max)
    			{
    					// pegando extensão da imagem
    					$this->ext = substr($this->arquivo,-3);
    					// verificando se o caminho e existente/ se não cria diretório
    					$this->CriarDir();
    					// gerando imagem
    
    					$this->Gerar();
    
    					return $this->ImagemGerada;
    			}
    			else
    				return $this->ImagemGerada; // retorno da imagem existente
            }
		}
		else
			return false; //retorna false se o arquivo nao for encontrado
	}
	// Gerador de Thumbs
	public function Gerar()
	{
		// se extesão for jpg
		if($this->ext == "jpg")
		{
			$imagem_orig = @imagecreatefromjpeg($this->arquivo);
		}
		elseif($this->ext=="png")
		{
			$imagem_orig = @ImageCreateFromPNG($this->arquivo);
		}
		elseif($this->ext=="gif")
		{
			$imagem_orig = @ImageCreateFromGIF($this->arquivo);
		}
		// pegando tamanhos da imagem
		$largura_original = @ImagesX($imagem_orig);
		$altura_original = @ImagesY($imagem_orig);

		$altura = $altura_original;
		$largura = $largura_original;

		if( $largura > $this->largura_max)
		{
			$largura = $this->largura_max;
			$altura = $altura * ($largura / $largura_original);

		}
		if($altura > $this->altura_max)
		{
			$largura = $largura * ($this->altura_max/$altura);
			$altura  = $this->altura_max;
		}

		//gerando imagem final
		$imagem_final=@ImageCreateTrueColor($largura,$altura);
		@ImageCopyResampled($imagem_final,$imagem_orig, 0, 0, 0, 0,$largura,$altura,$largura_original,$altura_original);
		$imagem_ext=@substr($this->arquivo,-3);
		// gerando arquivo
		if(strtolower($this->ext=="jpg"))
			@imagejpeg($imagem_final,$this->ImagemGerada,80);
		if(strtolower($this->ext == "png"))
			@imagepng($imagem_final,$this->ImagemGerada);
		if(strtolower($this->ext == "gif"))
			@imagegif($imagem_final,$this->ImagemGerada);
		// destruindo informações desnecessárias
		@imageDestroy($imagem_orig);
		@imageDestroy($imagem_final);
		//retornando caminho da nova imagem
	}
	public function CriarDir()
	{
		if(!is_dir($this->caminho))
		{
			mkdir($this->caminho,0777);
		}
	}
	public function NomeImagem()
	{
		//pegando nome original da imagem
		$imagemLimpando = @explode("/",$this->arquivo);
		$imagemNome = $imagemLimpando[(count($imagemLimpando) - 1)];
		// se o tipo for  igual a 1 ele usa o nome original da imagem
		// se não ele usa o timestamp para gerar um nome unico
		if($this->tipo == 1) $imagem_gerada=$this->caminho . $imagemNome;
		else $imagem_gerada = $this->caminho . $this->nome . "." .  $this->ext;
		$this->ImagemGerada = $imagem_gerada;
        
       // echo "ESTA E A IMAGEM GERARAD" . $this->ImagemGerada . "<BR>";
	}
}
?>

para usar basta fazer isso

	//$thumbs = new Thumbs();
	//$thumbs->caminho = "imagens/logomarcas/";
	//$thumbs->arquivo = $_SESSION['usuario']['configuracoes']['arquivo_logomarca'];
	//$imagem = $thumbs->Prepare();



#1019379 Pula Sequencia De Registro

Posted by Squall Robert on 11/09/2012, 14:07 in PHP

ORDER BY id DESC

faça um looping com resultado e compare....



#1019378 Verificar Se O Registro Já Existe

Posted by Squall Robert on 11/09/2012, 14:02 in PHP

você pode usar INSER ON UPDADE
isso faz com que se existir ele atualiza se nao insere...
mas no seu caso e mais simples....

faz uma consulta e com o resultado vc verifica se tem ou nao ....



#1019377 Paginação Estilizada

Posted by Squall Robert on 11/09/2012, 13:59 in PHP

mesma coisa das outras paginações ;.. e so formatar....



#1019376 Erro: Object Of Class Requerimento Could Not Be Converted To String In

Posted by Squall Robert on 11/09/2012, 13:59 in PHP

da um print_r na variavel antes de serialzar e cola ai....



#1019309 Filtrar Dados

Posted by Squall Robert on 30/08/2012, 17:42 in PHP

select a.id, a.pedidofisico, a.data, a.cliente, a.cpf_cnpj, a.data, b.id_pedido, b.valorun, b.valorreal, b.precodif, b.produto, b.qtd, b.qtd1, b.saldo from pedido a, pedido_itens b where a.pedidofisico = '263068' AND a.pedidofisico = b.id_pedido order by a.id DESC

e no banco existe o pedido do resultado



select 
a.id, 
a.pedidofisico, 
a.data, 
a.cliente, 
a.cpf_cnpj, 
a.data, 
b.id_pedido, 
b.valorun, 
b.valorreal, 
b.precodif, 
b.produto, 
b.qtd, b.qtd1, 
b.saldo 
from pedido a
INNER JOIN  pedido_itens b ON (a.pedidofisico = b.id_pedido)
where a.pedidofisico = '263068' 
order by a.id DESC

aparentement esta normal...

mas precisa ver os GET´S para entender como isso esta chegando...



#1019302 Formulário Php

Posted by Squall Robert on 30/08/2012, 11:37 in PHP

isso é simples de fazer ...

cria um form com nomes todos como vetor "[]"

ai so colocar em um form onde a quantidade do for é o numero que vc deseja criar de form...

quando vc der submit vc vai poder pegar os dados como vetor



#1019292 Filtrar Dados

Posted by Squall Robert on 28/08/2012, 11:18 in PHP

resultado foi:

Resource id #7


tira o mysqlquery

e imprime



#1019268 Envio Maximo De E-Mails Em Php

Posted by Squall Robert on 24/08/2012, 12:02 in PHP

se você fizer isso e seu servidor permitir , ele vai entrar pra a blacklisl..

o ideal e fazer com que seja desparados aos pocos....



#1019267 Mandar Email Com Php

Posted by Squall Robert on 24/08/2012, 12:00 in PHP

aparentemente esta ok... o que pode esta acontecendo quando você chama esta parte, esta sendo chamada 2 veses...



#1019266 Multipla Ordenação

Posted by Squall Robert on 24/08/2012, 11:58 in PHP

nao deu pra entender..., preciso saber em um grid como isso vai ficar para poder ter a solução



#1019265 Consulta Complexa X Excesso De Registros

Posted by Squall Robert on 24/08/2012, 11:56 in PHP

cara em emu sistema faço join com mais de 10 tabelas e tem mais 6 milhoes de registros...

mas para que fique rapido tem que tem uma configuração de banco razoavel e todas as tabelas tenha index e FK



#1019264 Ajuda Com Beteween

Posted by Squall Robert on 24/08/2012, 11:54 in PHP

você pode usar tanto -> SELECT cli_id,cli_nome FROM tb_clientes WHERE cli_dtcadastro >=’2007-08-01′ AND cli_dtcadastro <= ’2007-08-10′;

ou -> SELECT cli_id,cli_nome FROM tb_clientes WHERE cli_dtcadastro BETWEEN ’2007-08-01′ AND ’2007-08-10′;



#1019263 Recuperar Variavel Apos Deletar Um Item

Posted by Squall Robert on 24/08/2012, 11:52 in PHP

melhor vc usar session ...
com isso ele e elimitada a cada saida do programa.

session vai deixar arquivos na maquina .. e quando voê voltar para a tela direto vai aparecer o id la....

mas funciona tb....



#1019262 Ocultar Itens Do Menu

Posted by Squall Robert on 24/08/2012, 11:49 in PHP

veio ... ta tudo errado isso ai...

você esta fazendo várias consultas para niveis do meu, em uma estrutura grande isso vai dicar muito pesado.

com uma consulta você resolve isso ..

e fazendo uma chamada recursiva você monta o menu...


segue um exemplo de chamada recursiva...

public function DesenharArvore( $arvore, $tipo = null, &$html = "")
	{


		if(is_array($arvore) && count($arvore) > 0)
		{

			foreach($arvore as $itemMenu)
			{
			    //print_r($itemMenu);
				$nome 		= $itemMenu['nome'];
				$acao 		= $itemMenu['acao'];
				$modulo 	= $itemMenu['modulo'];
				$index 		= $itemMenu['index'];
				$target 	= $itemMenu['target'];
                $pai = $itemMenu['id_pai'];

				// Verifica se item � um menu pai
				if( count($itemMenu['filhos']) )
				{
                    $html .= "<li><a href='#' >$nome</a>\n";
                    $html .= "  <ul>\n";
                        	$this->DesenharArvore($itemMenu['filhos'], 1, $html);
                    $html .= "  </ul>\n";
                    $html .= "</li>\n";
				}
				else
				{
                    $html .= "  <li><a href='$index?app_modulo=$modulo&app_comando=$acao&app_codigo=' target='$target'>$nome</a></li>\n";
				}
			}
		}
        return $html;
	}


perceba que dentro da função ela se chama novamente.
com isso você tem subniveis ilimitados.



#1019261 Recuperar Valores Do Array

Posted by Squall Robert on 24/08/2012, 11:44 in PHP

bom se deu certo beleza... mas nao deu pra entender o codigo direito...

mas uma dica e você usar o foreach

assim

foreach($_SESSION['cart'] as $col => $row)
{
// aqui voce tem todos os itens do carrinho
// onde $col, corresponde a indice do item
// e $row o valor..

}



#1019260 Filtrar Dados

Posted by Squall Robert on 24/08/2012, 11:39 in PHP

Executa o form com o print do SQL e cola ai pra vermos o que ele esta escrevendo na query....



#1017867 Site Multi-Línguas

Posted by Squall Robert on 07/04/2012, 12:31 in PHP

ideal é te um aquivo para cada linguá com DEFINE

assim é so carrewgar o arquivo que traduz tudo



#1017655 Pesquisa No Mysql - 2 Tabelas Ao Mesmo Tempo...

Posted by Squall Robert on 26/03/2012, 10:45 in PHP

Se você é iniciante em Bancos de Dados ou ainda tem dúvidas sobre a utilização de Joins entre tabelas, saiba que o procedimento é mais simples do que parece. Basta entender pra que serve cada tipo de join e como eles trabalham. Sua experiência e persistência se encarregarão de lhe ensinar qual utilizar nas situações do cotidiano.

Programas Utilizados
- Bancos de Dados (Firebird, Interbase, MySQL, etc.)
- Gerenciador de Bancos de Dados (IBExpert, IBOConsole, IBConsole, etc.)
- Tabelas abaixo
FILIAL
FIL_CODIGO FIL_NOME
1 MATRIZ
2 FILIAL 1
3 FILIAL 2

FUNCIONARIOS
FUN_CODIGO FIL_CODIGO FUN_NOME
1 1 JOÃO
2 2 JOAQUIM
3 2 JOSÉ
4 3 MÁRCIO
5 null PEDRO
Pequena História
Na verdade, utilizamos palavras em inglês, padronizadas pela ANSI (American National Standards Institute), originalmente criada pela IBM com o nome de SEQUEL (Structured English Query Language) e posteriormente abreviada para SQL, para efetuar consultas de dados a um banco de dados relacional. Mas o que vem a ser um Join? Esta palavra em inglês significa Unir ou União e a utilizamos quando precisamos buscar dados em outras tabelas desde que satisfaça as condições para isso.
Porém ainda paira a dúvida: utilizo Join, Inner Join, Left Join, Right Join ou me jogo do 14º Andar?
Esta história de direita e esquerda funciona em qualquer banco de dados relacional pois são padrões definidos para se manter a compatibilidade entre os bancos de dados. Imagine você como seria se para fazer uma busca no Firebird você tivesse de escrever:
SELECT * FROM FUNCIONARIOS
WHERE FIL_CODIGO = 1

E no DB2 fosse completamente diferente:
FROM FUNCIONARIOS WHERE FIL_CODIGO = 1 SELECT *

Isto certamente causaria um "Access Violation" em sua cabeça.
Vamos ao que interessa.

Entendendo LEFT, RIGHT e INNER
Quando dizemos que a tabela será Left ou Right, estamos informando ao comando SQL que ele deve obedecer o sentido para a Direita ou para a Esquerda, ou seja, ao utilizarmos Left Join o banco de dados irá analisar a estrutura da tabela da Direita e comparar com a tabela da Esquerda (leia-se Direita para a Esquerda), veja o desenho.


Left Join
Na primeira situação temos o Left Join, a seta está apontando para a tabela FUNCIONARIOS simbolizando que a precedência é da tabela da Esquerda, então podemos dizer que no select abaixo, serão listados todos os Funcionários, mesmo aqueles que não tem Filial cadastrada.
SELECT A.FUN_NOME, B.FIL_NOME FROM FUNCIONARIOS A
LEFT JOIN FILIAL B ON A.FIL_CODIGO = B.FIL_CODIGO

-- RESULTADO DA CONSULTA --
FUN_NOME FIL_NOME
JOÃO MATRIZ
JOAQUIM FILIAL 1
JOSÉ FILIAL 1
MÁRCIO FILIAL 2
PEDRO null
Repare que Pedro foi incluído no resultado, porém ele não possui uma Filial associada em seu cadastro. Este tipo de Join é o mais utilizado quando não se tem certeza que todos os registros possuem ligação entre as tabelas e também na maioria das vezes por questões de desempenho.
Right Join
Na segunda situação foi utilizado o Right Join, também conhecido apenas por Join, que aponta para a tabela FILIAL simbolizando a precedência da tabela da Direita, logo, concluímos que os dados da tabela Filial devem existir para que o registro seja trazido no Select.
SELECT A.FUN_NOME, B.FIL_NOME FROM FUNCIONARIOS A
RIGHT JOIN FILIAL B ON A.FIL_CODIGO = B.FIL_CODIGO
-- AINDA PODEMOS UTILIZAR SEM A PALAVRA RIGHT
/*
SELECT A.FUN_NOME, B.FIL_NOME FROM FUNCIONARIOS A
JOIN FILIAL B ON A.FIL_CODIGO = B.FIL_CODIGO
*/

-- RESULTADO DA CONSULTA --
FUN_NOME FIL_NOME
JOÃO MATRIZ
JOAQUIM FILIAL 1
JOSÉ FILIAL 1
MÁRCIO FILIAL 2
Note que o funcionário Pedro desta vez não foi incluído na lista de resultados, isto ocorreu porque esta consulta traz apenas registros onde existe um cadastro de Filial para o Funcionário.

Inner Join
Temos ainda a situação do Inner Join que nada mais faz do que observar se existem registros combinados em ambas as tabelas, ou seja, para que um registro seja incluído na lista de resultados, o campo de ligação entre duas tabelas deve satisfazer as condições em ambas. O resultado desta consulta seria algo muito semelhante ao Join.

Conclusão
Com algum conhecimento básico para interação entre tabelas, podemos efetuar consultas complexas ao banco de dados envolvendo resultados perfeitamente controlados. Isto garante não somente credibilidade em consultas mas também desempenho do sistema quando utilizado corretamente. Ainda existem outros tipos de Join, porém seus resultados são semelhantes ou seu uso é muito pouco frequente. Para quem quiser saber mais a respeito de consultas SQL, basta ler um livro de Banco de Dados (qualquer um que seja pois todos tem muito conteúdo sobre PL/SQL).



#1017635 Somar Coluna

Posted by Squall Robert on 24/03/2012, 09:45 in PHP

tenta zerar a variavel antes do proximo resultado


mas coloca o codigo inteiro para entender melhor




IPB Skin By Virteq