AlanD 0 Denunciar post Postado Setembro 11, 2012 Bom gente, boa tarde, eu estou com um problema mas pelo fato de eu não conhecer muito a fundo de SQL acabo me deparando com esse pequeno desafio xD Simples, eu preciso fazer uma consulta em 3 tabelas ao mesmo tempo para um sistema de login. Exemplo: entro no form login com um email e senha a partir disto o sistema tem que verificar no banco de dados entre três tabelas, tb_admin, tb_professor, tb_administracao_geral. Ele deve verificar se em uma delas tem esse dados (email e senha) caso não o PHP retorna false e informa login incorreto, caso exista em uma das 3 tabelas o PHP retorna true e ai conecta ao sistema. fazer isso com uma tabela é simples, mas quando preciso fazer em mais de uma? Concorda comigo que é besteira fazer 3 páginas para cada tipo de login. Bom eu acho. porque se eu somasse a quantidade total de páginas caso cria-se uma para cada tipo de setor seria 8 páginas diferentes com o mesmo design. Mas enfim, minha dúvida é consultar dados em mais de 1 tabela. obrigado desde de já :DDD Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 11, 2012 Boa tarde amigo, Basicamente vai fazer 3 SELECTs, um em cada tabela... Usamos o JOIN para unir tabelas em mesmas querys, porém pelo que eu suspeito suas tabelas não devem ter elação nenhuma entre si. Sendo assim cada uma é 1 SELECT, se pelo menos um deles retornar sucesso você faz o que tem que fazer. Podem ser 3 separados ou com UNION: SELECT 1 FROM tb_admin t WHERE t.email = 'email do usuario' AND t.senha = 'senha do usuario' UNION SELECT 1 FROM tb_professor t WHERE t.email = 'email do usuario' AND t.senha = 'senha do usuario' UNION SELECT 1 FROM tb_administracao_geral t WHERE t.email = 'email do usuario' AND t.senha = 'senha do usuario' Se existir um login e senha em uma dessas 3 tabelas você vai ter retorno 1, senão nenhum retorno. Atente-se ao campo de senha, deve estar igual na condição e no banco. Por exemplo, se no banco ela é armazenada criptografada na query também deverá ser assim. A disposição, abraço. Compartilhar este post Link para o post Compartilhar em outros sites
AlanD 0 Denunciar post Postado Setembro 12, 2012 Obrigado meu amigo por sua resposta e ajuda :D consegui fazer e agora está perfeito. Compartilhar este post Link para o post Compartilhar em outros sites
DiegoAngra07 21 Denunciar post Postado Setembro 13, 2012 Satisfação em ajudar =] Compartilhar este post Link para o post Compartilhar em outros sites