Ir para conteúdo
Fórum Script Brasil

crazySerk

Membros
  • Total de itens

    95
  • Registro em

  • Última visita

Tudo que crazySerk postou

  1. Fiz umas pequenas alterações na Pivot que o Dennis disponibilizou aqui no forum, no qual ela faz uma soma total do valor Real da empresa no ano, porém ao invés de somar eu quero saber quantas propostas que foram enviadas em cada mes... bem eu fiz uma mudança no local que realizava um "SUM" para "COUNT"... Ficando dessa maneira... CONCAT(M_Columns, ' COUNT( CASE WHEN ',P_Column_Field,'=''',M_Column_Field,'''', ' THEN ',P_Value, ' ELSE 0 END) AS `', M_Column_Field ,'`,'); Funcionou em partes... ele me mostrou o valor correto das proposta... ( tenho cadastradas 6 propostas para uma empresa e 2 para outra...) mas ele repetiu este valor para todos os meses e não fez a separação das mesmas por data.. por exemplo as 6 Propostas que ele me mostrou 2 são do mes 11, e o restante do mes 10... Eu chamo a pivot com isso: CALL rel_anual_prop ( "b.nome", "month(a.data_cadastro)", "a.cod_proposta", "propostas a", " left outer join empresas_lojas b on (b.cod_loja = a.cod_loja) where a.cod_empresa = 6" ); a pivot completa está assim: DELIMITER $$ USE `iwebctrl`$$ DROP PROCEDURE IF EXISTS `rel_anual_prop`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `rel_anual_prop`(IN P_Row_Field VARCHAR(255), IN P_Column_Field VARCHAR(255), IN P_Value VARCHAR(255), IN P_From VARCHAR(4000),IN P_Where VARCHAR(4000)) BEGIN DECLARE done INT DEFAULT 0; DECLARE M_Count_Columns INT DEFAULT 0; DECLARE M_Column_Field VARCHAR(60); DECLARE M_Columns VARCHAR(8000) DEFAULT ''; DECLARE M_sqltext VARCHAR(8000); DECLARE M_stmt VARCHAR(8000); DECLARE cur1 CURSOR FOR SELECT CAST(Column_Field AS CHAR) FROM tem_rel_prop; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; DROP TABLE IF EXISTS tem_rel_prop; SET @M_sqltext = CONCAT('CREATE TEMPORARY TABLE tem_rel_prop ', ' SELECT DISTINCT ',P_Column_Field, ' AS Column_Field', ' FROM ',P_From, P_Where, ' ORDER BY ', P_Column_Field); PREPARE M_stmt FROM @M_sqltext; EXECUTE M_stmt; SELECT COUNT(*) INTO M_Count_Columns FROM tem_rel_prop WHERE Column_Field IS NOT NULL; IF (M_Count_Columns > 0) THEN OPEN cur1; REPEAT FETCH cur1 INTO M_Column_Field; IF (NOT done) AND (M_Column_Field IS NOT NULL) THEN SET M_Columns = CONCAT(M_Columns, ' COUNT( CASE WHEN ',P_Column_Field,'=''',M_Column_Field,'''', ' THEN ',P_Value, ' ELSE 0 END) AS `', M_Column_Field ,'`,'); END IF; UNTIL done END REPEAT; SET M_Columns = LEFT(M_Columns,LENGTH(M_Columns)-1); SET @M_sqltext = CONCAT('SELECT ',P_Row_Field,',',M_Columns, ' FROM ', P_From, P_Where, ' GROUP BY ', P_Row_Field, ' ORDER BY ', P_Row_Field); PREPARE M_stmt FROM @M_sqltext; EXECUTE M_stmt; END IF; END$$ DELIMITER ;
  2. São palavras aleatorias? ou são palavras fixas? São várias palavras juntas ou são pesquisadas uma por vez? Depedendo dá para fazer uma função para validar.... switch ($string) { case "CARRO": if ( ereg("[CARRO]",$frase)) return true; break; case "HOTEL": if ( ereg("[HOTEL]",$frase)) return true; break; }
  3. Qual o erro que está dando? Adicione isso no inicio da sua pagina, dentro das tag php ini_set('display_errors',1); ini_set('display_startup_erros',1); error_reporting(E_ALL); E retorne aqui mostrando a mensagem que apareceu...
  4. crazySerk

    TABELA PHP

    Ah, se você quer retornar todos os resultados então precisar adicionar um While... Muda esse trecho: $dados= $Result->fetch_array(); echo "<tr><td>" . $dados['username'] . "</td><td>" . $dados['titulo'] . "</td><td>" . $dados['mensagem'] . "</td></tr>"; Para: while($dados = $Result->fetch_array()){ echo "<tr><td>" . $dados['username'] . "</td><td>" . $dados['titulo'] . "</td><td>" . $dados['mensagem'] . "</td></tr>"; }
  5. Não sei se é correto mas montei assim.. :P CALL pivotwizard("a.cod_loja, b.nome", "substring(data_cadastro,1,7)", "valor_veiculo", "propostas a", " left outer join empresas_lojas b on (b.cod_loja = a.cod_loja) where a.cod_empresa = 6"); Retirei o ' WHERE ' deixei apenas a variavel assim eu consigo passar os comandos do join antes do where ... Pode fechar esse tópico Denis! Obrigado pela sua atenção
  6. Você tem 2 tabelas, "Tabela_Item" que possui o status pronto correto? e a tabela "Tabela_pedido" nela ela espera o status do Item está como pronto correto? Existe algum relacionamento entre essas 2 tabelas? Se tiver é mais fácil você por um efeito Cascade no update da tabela item ou até mesmo criar uma trigger para fazer isso.
  7. Não compreendi a sua dúvida... Que botão é esse que você está falando que chega no e-mail? O que você quer transformar em Hiperlink? esse campo hidden que tem o valor precisa por a sua variavel dentro da tag value="<?php echo $confereEmail; ?> "
  8. Acredito se você utilizar isso dentro do seu aviso vai resolver... if (mysql_query($excluir)) { echo "Registro excluido com sucesso"; echo "<script>document.getElementById('ID_DO_BOTAO').style.display='none';</script>" }
  9. Acredito que se você colocar um Group By no final do codigo para agrupar resolveria.. Faz um teste $sql = ' SELECT noticias.idNot, noticias.subcategorias, noticias.titulo, notsub.subcategoria, subcategorias.idSub, subcategorias.nomeSub FROM noticias INNER JOIN notsub ON noticias.subcategorias = notsub.notId INNER JOIN subcategorias ON notsub.subcategoria = subcategorias.idSub group by noticias.idNot
  10. crazySerk

    TABELA PHP

    Na realidade não está errado a utilização do mysqli_query . Bem já que está utilizando o Mysqli porque não fazer algo orientando a objeto mesmo? Se fosse eu utilizaria da seguinte forma... <table width="300" align="center" class="formulario"> <tr> <td>Usuário:</td> <td>Título: </td> <td>Mensagem: </td> </tr> <?php $Mysqli = new mysqli("localhost", "user", "senha", "banco"); $Query = "SELECT * FROM noticias order by id ASC limit 0,4"; $Restult= $Mysqli->query($Query); if($Result->num_rows > 0) { $dados= $Result->fetch_array(); echo "<tr><td>" . $dados['username'] . "</td><td>" . $dados['titulo'] . "</td><td>" . $dados['mensagem'] . "</td></tr>"; } else { echo "Sem notícias."; } $Mysqli->close(); ?> </table> Código fica até mais limpo eu acho.. :P
  11. Caraca denis... ficou top!!! funcionou mesmo... Denis, não quero abusar da sua boa vontade, gostaria de saber se é possivel você comentar essas linhas dessa procedure porque com certeza irei usar para fazer outras dessa no sistema.. E uma outra coisa, por exemplo eu to chamando assim: call pivotwizard("cod_loja", "substring(data_cadastro,1,7)", "valor_veiculo", "propostas", "cod_empresa = 6"); neste caso está mostrando dessa maneira o resultado: cod_loja | 2013-10 | 2013-11 54 | 40000 | 500000 Como posso fazer para pegar o nome dessa empresa cod_loja que está em outra tabela? que no caso é na tabela "empresas_lojas" Quero agradecer novamente por me ajudar... obrigado pela sua atenção!!!
  12. Sim deixei igual o que você postou, apenas mudei o banco de dados, como estou usando o mesmo gerenciador da BD que voce, deixei tudo igual.
  13. Denis, baixei tambem o SQLyog para executar sua procedure, alterei o banco de dados, porém está dando este erro ainda: 1 queries executed, 0 success, 1 errors, 0 warnings Query: DROP PROCEDURE IF EXISTS `iwebctrl`.`pivotwizard`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `pivotwizard`(IN P_Row_Field VAR... Error Code: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `pivotwizard`(IN P_Row_Field V' at line 1 Execution Time : 0 sec Transfer Time : 0 sec Total Time : 0.001 sec Estou usando a versão 5.5 do mysql não sei se tem algum problema...
  14. Entendi, vou fazer os testes aqui e retorno o que deu.. obrigado até o momento Denis!
  15. Até a Fase 1 entendi, porém essa fase 2 não entendi nada.. rss Ainda não mexi em nada de procedures... Eu copio essa procedure e coloco no meu banco isso? se for, tentei executar não passou da primeira linha... rs Deu esse erro.. : You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `pivotwizard`(IN P_Row_Field V' at line 1
  16. Então Denis, porém na hora que eu faço um Insert eu crio esse historico... quando é insert não se usa o New? Porém o problema eu descobrio que era... Eu declarei a varial cod_equipe e por alguma razao estava dando conflito com a atributo da tabela, mudei o nome para c_equipe e funcionou... rsss Porém posso aproveitar esse tópico e pedir um auxilio em outra coisa? Estou precisando gerar um grafico com o desempenho geral da empresa no ano... exemplo teria 3 empresa e precisava mostrar o que cada uma produziu em cada mes exemplo... Empresa 1 - Janeiro 23 milhoes... Empresa 2 - Janeiro 33 milhes... Empresa 3 - Janeiro 33 milhoes.. Empresa 1 - Fevereiro 13 milhoes... Empresa 2 - Fevereiro 13 milhoes... Empresa 3 - Fevereiro 13 milhoes... E assim por diante... Eu conseguiria montar isso pelo banco? se sim, voce teria um exemplo + - para eu estudar ? Eu pesquisei um pouco e surgiu o tal pivot porém não entendi como aplicar ele em minha aplicação... Eu vi que eles consegue separar por mes porém na minha tabela eu salvo a data em Datetime, e como vou informar para o banco os meses correto? To confuso com isso.. rs Minha tabela é está... O Campo que quero mostrar é o valor_veiculo que no caso vai somar todos os veiculos do mes e apresentar exemplo Janeiro - 20 milhoes e assim por diante... CREATE TABLE `propostas` ( `cod_proposta` bigint(20) NOT NULL AUTO_INCREMENT, `cod_empresa` int(11) NOT NULL, `cod_loja` int(11) NOT NULL, `usuario` varchar(50) NOT NULL, `nome_completo` varchar(160) DEFAULT NULL, `cod_cliente` varchar(23) NOT NULL, `cod_cliente_avalista` varchar(23) DEFAULT NULL, `cod_modelo` bigint(20) DEFAULT NULL, `ano_fabricacao` varchar(4) DEFAULT NULL, `ano_modelo` varchar(4) DEFAULT NULL, `valor_veiculo` double DEFAULT NULL, `valor_tc` double DEFAULT NULL, `valor_emplacamento` double DEFAULT NULL, `valor_entrada` double DEFAULT NULL, `coeficiente` varchar(8) DEFAULT NULL, `num_parcelas` int(11) DEFAULT NULL, `valor_parcela` double DEFAULT NULL, `carencia` int(11) DEFAULT NULL, `data_cadastro` date DEFAULT NULL, Bom não sei se ficou bem claro a minha duvida mas agradeço antecipadamente sua boa vontade ! ;D Obrigado!
  17. Estou com um pequeno problema, estou fazendo 2 selects para trazer 2 informações, porem ambas estão trazendo NULL ambos campos, sendo que possui dados e informações em cada tabela. BEGIN /* variavel para realizar controle */ DECLARE cod_equipe INT DEFAULT 0; DECLARE supervisor_equipe VARCHAR(50); /* recuperando o codigo da equipe do usuario */ SET cod_equipe = (select cod_equipe from `equipe_usuarios` where usuario = new.usuario AND cod_empresa = new.cod_empresa); /* recuperando o supervisor da equipe */ SET supervisor_equipe = (select supervisor from equipes where cod_equipe = cod_equipe AND cod_empresa = new.cod_empresa); /* tratamento das variaveis, se forem vazias adiciono null IF((cod_equipe) = '' ) then cod_equipe = null; END IF; IF(supervisor_equipe = '') then supervisor_equipe = null; END IF;*/ /* inserir o historico */ INSERT INTO `propostas_historicos` ( `cod_proposta`, `cod_empresa`, `cod_loja`, `usuario`, `cod_equipe`, `supervisor_equipe`, `data_cadastro`) VALUE ( new.cod_proposta, new.cod_empresa, new.cod_loja, new.usuario, cod_equipe, supervisor_equipe, new.data_cadastro); END O Problema está sendo neste trecho.. /* recuperando o codigo da equipe do usuario */ SET cod_equipe = (select cod_equipe from `equipe_usuarios` where usuario = new.usuario AND cod_empresa = new.cod_empresa); /* recuperando o supervisor da equipe */ SET supervisor_equipe = (select supervisor from equipes where cod_equipe = cod_equipe AND cod_empresa = new.cod_empresa); ambas variaveis estão com NULL, mas possui dados no select que estou fazendo. A trigger compila sem erros, todos os outros campos são preenchidos sem erros apenas os 2 campos que mais preciso não vem os valores... Fiz algo errado?
  18. Não compreendi muito bem a dúvida... Voce tá com dúvida na hora do Insert? ou está com dúvida como fazer um formulario apenas?
  19. Opá, obrigado Denis fiz uns ajustes aqui e deu certo.. Obrigadoo novamente!!! :D
  20. Então Denis depois que postei o tópico, vi que ficou meio confuso mesmo... Tenta explicar o que eu estou fazendo, Tenho veiculos cadastrado, porém no ato de cadastrar um opcional o cara poderá escolher para cadastrar esse opcional para apenas os veiculos de uma marca Exemplo ( Escapamento Gol, cadastrado para toda marca Volks ) ( Na Bd iria ficar, todos_modelos = 1 , e no campo cod_marca = 2 ) Ou Cadastrar o opcional para todos os veiculos( se o usuario tiver 10 veiculos cadastrados vai aparecer para as 10 ) (Na bd iria ficar todos_modelos = 2 e cod_marca = null e cod_modelo = null ) Ou cadastrar apenas o veiculo para um veiculo especifico ( todos_modelos = 3 e o cod_modelo = 4) Não sei se ficou ainda claro, mas depois analisei melhor e acredito que apenas via PHP mesmo que daria para separar isso, assim eu montei esse combo: $codModelo = (int)$_POST['codModelo']; $Query = $Mysqli->query("select cod_opcional, a.cod_modelo, a.cod_marca, a.todos_modelos, a.desc_opcional from veic_opcional a where a.cod_empresa = ".$_SESSION['d_cod_empresa']); //selecionar a cod_marca do veiculo selecionado $QueryC = $Mysqli->query("select cod_marca from empresas_veiculos where cod_modelo = ".$codModelo); $ObC = $QueryC->fetch_array(); if($Query->num_rows > 0){ while($Ob = $Query->fetch_array()){ //verifico se o valor de todos os modelos é diferente do que 2 se for //verifico se o cod_modelo nao está vazio se nao estiver //verifico se o modelo que o usuario seleciono é o mesmo que está cadastrado se for exibo if($Ob['todos_modelos'] != '2' && !empty($Ob['cod_modelo']) && $Ob['cod_modelo'] == $codModelo ){ echo "<option value=\"".$Ob['cod_opcional']."\">".utf8_encode($Ob['desc_opcional'])."</option>"; } //verifico se o valor de todos os modelos é diferente do que 2 se for //verifico se o cod_marca nao está vazio se nao estiver //verifico se a marca que é a mesma que ele está cadastrado else if($Ob['todos_modelos'] != '2' && !empty($Ob['cod_marca']) && !empty($ObC['cod_marca']) && $Ob['cod_marca'] == $ObC['cod_marca'] ){ echo "<option value=\"".$Ob['cod_opcional']."\">".utf8_encode($Ob['desc_opcional'])."</option>"; } //verifico se a coluna todos_modelos possui o valor 2 ( todoos os modelos ) //verifico se cod_modelo e cod_marca estão vazios else if($Ob['todos_modelos'] == '2' && empty($Ob['cod_marca']) && empty($Ob['cod_modelo'])){ echo "<option value=\"".$Ob['cod_opcional']."\">".utf8_encode($Ob['desc_opcional'])."</option>"; } } }else{ echo "ERRO"; }
  21. Fala galera, to precisando de novamente uma ajuda aqui. Tentarei ser o mais claro em minha dúvida, bom gostaria de saber se é possivel usar em um select as clausulas IF, sim como poderia montar este select... Minha estrutura da tabela: SELECT `cod_opcional`, `cod_modelo`, `cod_marca`, `cod_empresa`, `todos_modelos`, `desc_opcional`, `valor`, `status` FROM `veic_opcional` eu preciso retornar 2 campos, o cod_opcional, e o desc_opcional, porém isso tudo dependerá da informação que o atributo todos_modelos possui. Por exemplo, se no campo Todos_modelos estiver com o valor 1, eu preciso verificar o atributo cod_modelo se bate com o id que estarei informando, por exemplo: 25. Se todos_modelos estiver como valor 2, então ele precisa mostrar esse opcional ( não vai fazer nenhuma comparação...) Ou se Todos_modelos estiver com o valor 3 então preciso verificar um valor na tabela cod_marca exemplo: 4 Bem não sei se a minha dúvida ficou bem clara, mas isso que to precisando, procurei algumas coisas na internet vi falando algo sobre o CASE mas nenhum exemplo de facil entendimento. Eu consegui montar isso através do meu codigo php, mas acredito que montando através do banco fica melhor o desempenho. :) Agradeço a ajuda.
  22. Pode marca o tópico como resolvido por que tá 100%.
  23. Qual a diferença do Into para Set nesse caso?
  24. Galera, montei essa trigger, ela é simples e não tem muita frescura, porém ela não está funcionando. Compila sem erros. BEGIN /* declaro variavel para realizar controle */ DECLARE marca INT DEFAULT 0; declare desc_ VARCHAR(60); /* select para verificar se já existe algum registro para a marca selecionada da empresa */ select count(cod_marca) into marca from empresas_lojas where cod_marca = new.cod_marca AND cod_empresa = new.cod_empresa; /* select para recuperar o nome da marca que estamos inserindo */ select descricao into desc_ from marcas where cod_marca = new.cod_marca; /* verifico se existe já um dado para marca escolhida, se marca for maior que 0 é porque já foi feito um cadastro para marca selecionada, caso contrario apenas salvo essa nova marca */ IF(marca < 1) then /* crio copia da marca para a empresa */ insert into empresas_marca (cod_marca,descricao,cod_empresa,cod_loja) values (new.cod_marca,desc_,new.cod_empresa,NEW.cod_loja); end if; END Esqueci de algo nessa trigger?
  25. Galera to querendo por um sistema de comentarios no meu sistema estilo do facebook, não sei se já perceberam mais quando voce comenta em algum lugar no facebook e logo após uma outra pessoa comenta, esse comentario já surge abaixo do seu , sem precisar atualizar a pagina... pensei em por um refresh a cada 1 seg, porém fica feio e tambem se a pessoa colocar um comentario um pouco extenso conforme vai atualizando a pessoa não vai conseguir ler, porque todo segundo vai sumir o comentario. alguém teria uma ideia ou um exemplo do comentario nesse estilo? Obrigado.
×
×
  • Criar Novo...