Maulaz 1 Denunciar post Postado Agosto 1, 2009 É o seguinte tenho as seguintes tabalas. Tabela Instituição CREATE TABLE IF NOT EXISTS `tbcinstituicao` ( `cdinstituicao` int(11) NOT NULL auto_increment, `nminstituicao` varchar(150) NOT NULL, `dtcadastro` timestamp NOT NULL default '0000-00-00 00:00:00', `usercadastro` int(11) default NULL, `dtupdate` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `userupdate` int(11) default NULL, `dtdelete` timestamp NULL default NULL, `userdelete` int(11) default NULL, PRIMARY KEY (`cdinstituicao`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=254 ; Tabela Formação/Candidato CREATE TABLE IF NOT EXISTS `tbcformacao_candidato` ( `cdformacao` int(11) NOT NULL, `cdusuario` int(11) NOT NULL, `cdinstituicao` varchar(11) NOT NULL, `ufinstituicao` varchar(11) NOT NULL, `inforinstituicao` varchar(255) default NULL, `nmcurso` varchar(200) default NULL, `informecurso` varchar(255) default NULL, `obscurso` varchar(255) default NULL, `dtiniciomes` char(2) NOT NULL, `dtfinalmes` char(4) NOT NULL, `dtinicioano` char(2) NOT NULL, `dtfinalano` char(4) NOT NULL, `concluiucurso` char(3) NOT NULL, `dtcadastro` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, `dtalteracao` timestamp NOT NULL default '0000-00-00 00:00:00', `dtdelete` timestamp NULL default NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1; Eu prescizava exibir somente dois campos na query, seria o nminstituicao da primeira tabela, tbcinstituicao, e o campo nmcurso da segunda tabela, tbcformacao_candidato. Somente o campo nminstituicao/nmcurso desde que o cdinstituicao fosse igual nas duas tabelas. Até ai tranquilo. O problema é que no meu formulario quando o usuário vai selecionar a instituição ou mesmo curso, caso os que estão listados ali não atenda ao mesmo, e o usuário selecionar no combo a opçao "outros", exibe um campo novo no formulario para ele está informando outra intituição ou mesmo curso. Tentei fazer um if na query, mas está sempre dando erro.. rsrsrs dei uma googlada e não conseguir achar nada para resolver.. seria tipo assim, se o campo nminstituicao/nmcurso tiver o valor "Outros", ele não iria exibir essa informação e exibiria o que está cadastrado no campo inforinstituicao ou informecurso. Se alguém puder me da uma ajuda ai nessa.. vlw Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Agosto 2, 2009 poste sua tentativa Compartilhar este post Link para o post Compartilhar em outros sites
Maulaz 1 Denunciar post Postado Agosto 4, 2009 conseguir resolver em partes o problema... pesquisei e conseguir fazer as querys separadas. So tive que alterar o campo cdinstituição e cadastrar no banco a instituição Outras de codigo 254. SELECT IF( nmcurso = 'Outro', informecurso, nmcurso ) AS nmcurso FROM tbcformacao_candidato WHERE cdusuario = 211 SELECT IF( fc.cdinstituicao = 254, fc.inforinstituicao, i.nminstituicao ) AS nminstituicao FROM tbcformacao_candidato AS fc, tbcinstituicao AS i WHERE i.cdinstituicao = fc.cdinstituicao AND cdusuario = 211 Agora como faço para juntar-las para que o resultado fosse: nmcurso | nminstituicao xxxx | xxxxx xxxx | xxxxx Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Agosto 4, 2009 SELECT IF( nmcurso = 'Outro', informecurso, nmcurso ) AS nmcurso FROM tbcformacao_candidato WHERE cdusuario = 211 UNION ALL SELECT IF( fc.cdinstituicao = 254, fc.inforinstituicao, i.nminstituicao ) AS nminstituicao FROM tbcformacao_candidato AS fc, tbcinstituicao AS i WHERE i.cdinstituicao = fc.cdinstituicao AND cdusuario = 211 ? Compartilhar este post Link para o post Compartilhar em outros sites
Maulaz 1 Denunciar post Postado Agosto 5, 2009 mas dessa forma usando UNION ALL, uniu tudo em um unico campo, o que estava prescizando era que ficasse em campos separados, a primeira query em um campo e a segunda em outro. conforme exemplo: nmcurso | nminstituicao xxxxxxx | xxxxxxxxxxx xxxxxxx | xxxxxxxxxxx Compartilhar este post Link para o post Compartilhar em outros sites
Maulaz 1 Denunciar post Postado Agosto 8, 2009 Pessoal, coseguir fazer mais alguma coisa, mas mesmo assim num deu muinto certo, fiz o seguinte. SELECT IF( nmcurso = 'Outro', informecurso, nmcurso ) AS nmcurso, '' as nminstituicao FROM tbcformacao_candidato WHERE cdusuario = 211 UNION SELECT '' as nmcurso, IF( fc.cdinstituicao = 254, fc.inforinstituicao,i.nminstituicao ) AS nminstituicao FROM tbcformacao_candidato AS fc, tbcinstituicao AS i WHERE i.cdinstituicao = fc.cdinstituicao AND cdusuario = 211 fiz conforme acima e o resultado ficou assim, quase que deu certo. mas prescizava que ficasse assim: nmcurso | nminstituicao xxxxxxx | xxxxxxxxxxx xxxxxxx | xxxxxxxxxxx Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Agosto 8, 2009 Da pra você dar um exemplo das tabelas e da resposta q você quer, pq 'xxxx' nao ajuda mto pra saber o q você quer mostrar. Compartilhar este post Link para o post Compartilhar em outros sites
Maulaz 1 Denunciar post Postado Agosto 9, 2009 bom a query me resulta conforme imagem abaixo. Como podem ver a query ta fufando, porém não exibe os dados sequenciais nas colunas, execulta uma coluna e quando termina a mesma e que na outra coluna começa os dados, queria que ficasse no mesmo alinhamento as duas colunas e não como está. Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Agosto 10, 2009 SELECT IF( nmcurso = 'Outro', informecurso, nmcurso ) AS nmcurso, IF( fc.cdinstituicao = 254, fc.inforinstituicao,i.nminstituicao ) AS nminstituicao FROM tbcformacao_candidato AS fc, tbcinstituicao AS i WHERE cdusuario = 211 AND i.cdinstituicao = fc.cdinstituicao ? Compartilhar este post Link para o post Compartilhar em outros sites