Ir para conteúdo
Fórum Script Brasil

Denis Courcy

Moderadores
  • Total de itens

    3.089
  • Registro em

  • Última visita

Tudo que Denis Courcy postou

  1. Denis Courcy

    Como agir com mysql

    Oi, Frank! Bem vindo ao universo do MySQL. Sugiro que você leia o manual do mysql (Se souber inglês leia o manual de sua versão. Se não souber, leia o das versão 4.1 que foi 90% traduzido para o português). Sugiro, também, que você procure e leia alguns tutoriais sobre ele na net.
  2. Oi, 'acborba'! Se a tabela pergunta é a que possui a constraint, como no exemplo do post anterior, então faça assim: ALTER TABLE pergunta DROP FOREIGN KEY `<nome_que_você_deu_a_chave_estrangeira>`;
  3. Oi, '*FIT*' Com os dados inseridos não haverá problema algum. Mas com as CONSTRAINTS e os relacionamentos, sim. Se você criou CONSTRAINTS, então, talvez elas não te deixeim modificar o nome da tabela. Quanto aos relacionamentos, você deverá observar todo o código de seus programas e modificá-los para aceitarem o novo nome de tabela.
  4. Oi, 'acborba' Agora que você esclareceu o que queria, neste seu último post, e, com base na instrução que você colocou no segundo post, que repito abaixo tente fazer assim:INSERT INTO pergunta (idPergunta, idGrupo, pergunta, ativa, data) VALUES (varidPergunta, varidGrupo, varpergunta, varativa, vardata)Como não sei nada de PHP, Substitua os nomes das variáveis que começam por var pelos nomes das suas variábveis.
  5. Denis Courcy

    Contando resultados

    Oi, 'Montano' Como você não informou o nome dos campos estou usando idsituacao para o atributo que representa a chave primária em tb_situaçoes e, também a chave estrangeira em tb_contrato. SELECT c.idcontrato, c.cidade, s.nomesituacao, count(c.idsituacao) AS qtsituacao FROM tb_contrato c INNER JOIN tb_situaçoes s ON s.idsituacao = c.idsituacao GROUP BY c.cidade, c.idsituacao basicamente é isso que você precisa.
  6. Oi, 'thiago.mac' Esta solução é obtida através de programação. Com base nisso criei uma procedure que armazenará os dados em uma tabela temporária que será criada e colocada na memória. Tudo o que você tem que fazer é chamar a procedure, usar um select na tabela "listagem" (nome que dei a tabela) e, depois de terminar, dar um DROP na tabela listagem para retirá-la da memória. Assim: CALL lista_materiais; SELECT * FROM listagem; <<<seu código>>> DROP TABLE listagem; Segue abaixo o código da storage procedure:DELIMITER $$; DROP PROCEDURE IF EXISTS `test`.`lista_materiais`$$ CREATE DEFINER=`root`@`localhost` PROCEDURE `lista_materiais`() BEGIN DECLARE m_inventario INTEGER; DECLARE old_inventario INTEGER; DECLARE m_descricao CHAR(60); DECLARE m_descmaterial CHAR(60); DECLARE pos_coluna INTEGER; DECLARE m_eof INTEGER DEFAULT 0; DECLARE cur_rel_objeto_material CURSOR FOR SELECT rom.inventario, o.descricao, m.descmaterial FROM rel_objeto_material rom INNER JOIN objeto o ON o.inventario = rom.inventario INNER JOIN material m ON m.idmaterial = rom.idmaterial; DECLARE CONTINUE HANDLER FOR NOT FOUND SET m_eof = 1; CREATE TEMPORARY TABLE listagem ( Inventario integer, DescObjeto varchar(60), DescMater1 varchar(60), DescMater2 varchar(60), DescMater3 varchar(60), PRIMARY KEY (Inventario) ); OPEN cur_rel_objeto_material; FETCH cur_rel_objeto_material INTO m_inventario, m_descricao, m_descmaterial; WHILE NOT m_eof DO SET old_inventario = m_inventario; SET pos_coluna = 1; WHILE (old_inventario = m_inventario) AND (NOT m_eof) DO IF pos_coluna = 1 THEN INSERT INTO listagem(Inventario, DescObjeto, DescMater1) VALUES (m_inventario, m_descricao, m_descmaterial); ELSEIF pos_coluna = 2 THEN UPDATE listagem SET DescMater2 = m_descmaterial WHERE Inventario = m_inventario; ELSEIF pos_coluna = 3 THEN UPDATE listagem SET DescMater3 = m_descmaterial WHERE Inventario = m_inventario; END IF; SET pos_coluna = pos_coluna + 1; FETCH cur_rel_objeto_material INTO m_inventario, m_descricao, m_descmaterial; END WHILE; END WHILE; CLOSE cur_rel_objeto_material; END$$ DELIMITER;$$
  7. oi Dione, Complementando o que o 'Mestre SAM' passou no post anterior, para que não haja erros e mantenha-se o padrão SQL ANSI: acrescente a cláusula AS cliente na linha onde está SELECT cliente_evento. Além disso, para obter o ORDER BY do jeito que você quer, as duas instruções SELECT deverão estar entre parênteses. (Ver manual do MySQl versão 4.1 [tradução em português], seção 6.4.1.2. Sintaxe UNION). O resultado fica como abaixo: (SELECT cliente FROM tabela_clientes) UNION ALL (SELECT cliente_evento AS cliente FROM tabela_clientes) ORDER BY cliente
  8. Denis Courcy

    ERRO: FETCH ROW

    Movendo MySQL >>> PHP
  9. Oi, 'jose.rob.jr' Você disse: Ficou lento porque faltaram alguns índices. A falta de índices obriga o MySQL varrer toda a tabela para separar os registros que coincidem com o que você está procurando. Isto é conhecido como TABLE SCAN.Inclua índices para os atributos: userid na tabela comentarios; local na tabela comentarios; local na tabela locais; localid na tabela comentarios; id na tabela ids; e count na tabela contagem.
  10. Oi, 'Luizzzzzzzzzzzzzzzz' Por que vocês gostam de complicar. Não seria mais fácil criar a tabela de grupo com (idgrupo e nome_grupo); a tabela itens com (iditem e nome) e uma tabela de relacionamento grupo_x_item com (idgrupo e idItem) [Esta tabela faria o relacionamento muitos para muitos entre as tabelas itens e grupos]? Respondendo sua pergunta, a cláusula WHERE ficaria assim: WHERE item >= inicial and item <= final Se não retornar nada então não há grupo para este item.
  11. Denis Courcy

    (Resolvido) Consulta

    Oi, Nill Então vamos fazer por partes: Você obtem os veículos que estão emprestados, conforme você mesmo disse, fazendo esta consulta: SELECT cdveiculo FROM tbaemprestimo WHERE dtentrada IS NULL Usando este trecho de código e incluíndo a tabela tbaveiculo, teremos:SELECT v.cdveiculo, v.nmveiculo FROM tbaveiculo as v WHERE v.cdveiculo NOT IN (SELECT cdveiculo FROM tbaemprestimo WHERE dtentrada IS NULL); Tente agora.
  12. Oi, 'Hebert J' Não. não prejudica. Utilize na pesquisa a cláusula IN BOOLEAN MODE Veja este tópico: (Resolvido) Pesquisa full text
  13. Denis Courcy

    (Resolvido) Consulta

    Oi, Nill Utilize NOT IS NULL no lugar de IS NULL
  14. SELECT * FROM grupo g INNER JOIN tb_pergunta p ON g.idGrupo = p.idGrupo As cláusulas WHERE, GROUP BY e ORDER BY entram normalmente, logo após a instrução acima.
  15. Denis Courcy

    mysql

    Você já verificou se as tabelas estão consistentes? Faça o reparo delas e tente denovo. Se ainda assim não conseguir, então o seu Servidor dde Banco está danificado. Neste caso, faça o backup dos dados usando o mysqldump, desinstale o banco atual e reinstale novamente.
  16. Denis Courcy

    mysql

    Oi, 'mdpirangi' Como você está usando estas funções?
  17. Então mantenha o campo como date e deixe o trigger como está. Ele faz a conversão.
  18. Não. Está errado. Faça assim:DELIMITER $$; DROP TRIGGER `<seubanco>`.`<suatabela>`$$ create trigger `<suatabela>` BEFORE INSERT on `<seubanco>` for each row BEGIN SET NEW.<seucampo> = NOW(); END; $$ DELIMITER;$$
  19. Oi, 'acborba'! Mude o tipo do campo para para TIMESTAMP NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP Se não houver outro campo com esta característica ele automaticamente atualizará a data do campo sempre que este registro sofrer modificação. No seu caso como é só na criação da pergunta, o campo pode ser criado como TIMESTAMP, somente. E a atualização da data pode ser efetuada através de um trigger before insert usando a função NOW() que retorna um timestamp.
  20. Pesquise tabela por tabela usando o mysql.exe (o mesmo que você usou acima) com show create table <nomedatabela>; A resposta está na última linha de cada.
  21. Oi, 'Prove Yourself' Suas tabelas estão neste padrão (charset=latin1)?
  22. Oi, 'acborba' ! Esta é uma área específica para o banco de dados MySQL. Se sua dúvida está no relacionamento entre as duas tabelas, este se faz desta forma: SELECT * FROM tbp_galerias g INNER JOIN tbp_galerias_imagens gi ON gi.idGaleria = g.idGaleria Se sua dúvida, além do exposto acima, está na composição do código PHP, então podemos transferir o tópico para aquela área.
  23. 'Marco Canhoto' , Preencha os campos conforme abaixo na tabela mysql.user: host = % user = root password = password(<suasenha>) demais campos = Y
  24. Denis Courcy

    Trigger maluca

    Oi, 'Gato Mestre' Faça isto através de storage procedure. Informe como parâmetro o código a ser deletado, delete os filhos e depois, delete o pai.
×
×
  • Criar Novo...