Consulta entre duas tabelas

Tenho duas tabelas adm e distribuidor, existe um login quem é através do e-mail e senha, como logar cm esses campos consultado as duas tabelas, no CRUD tem o select dinâmico

public function select($fields,$table,$cond,$exec){
   $this->prepExc('SELECT '.$fields.' FROM '.$table.' '.$cond.' ',$exec);
   return $this->query;
}

a consulta

$this->log = $this->senha == $senha?
$this->crud->select('*','administrador','WHERE email = ? && senha = ?',
       array($this->email,$this->cpt->setCripto($this->senha))): FALSE;

Amigo.

eu acho este metodo “select” algo, digamos, bem esquisito: ao mesmo tempo que é util pra fazer consultas, ela é demasiadamente simples pois vc não tem espaço pra JOIN, pra GROUP BY, etc. ele é basicamente uma interface procedural em um mundo Orientado a Objetos.

ao invés de utilizar um objeto “crud” (que adiciona uma leve abstração para o banco de dados) pense classed do tipo DAO, que sabe fazer uma query baseado no seu modelo de dados

Inspiração
https://www.caelum.com.br/apostila-java-web/bancos-de-dados-e-jdbc/

agora vc não precisa pegar o “crud” e jogar fora. o seu crud pode ficar em uma camada de infraestrutura. seu DAO pode usa-lo como o DAO do exemplo da apostila usa o JDBC. mas quando vc precisar de coisas como JOIN, transações, etc, talvez este tipo de metodo caia em desuso.

Obrigado por responder amigo, deixa ver se eu entendi, quer dizer que do modo que está este CRUD fica complicado usar o JOIN e GROUP etc, é isso, me corrija se eu estiver errado…?

Eu tenho uma dúvida se seria necessário cria duas tabelas distintas, pois ambos são usuários, mas com algumas características diferentes, so não tenho uma ideia de como fazer agora, por exe meu usuario admin so tem id nome email e senha na outra tabela tem, além destes campos, outros peculiares somente para ele, eu criei duas tabelas diferentes por não ter pensado em uma forma mais prática, por ex talvez criar uma única tabela para os dois, mas como separa-los ? ainda naõ sei…

Cria uma tabela Usuario, só nessa tabela deve ficar as informações de login. A tabela “Distribuidor” deve conter somente essas as informações sobre um distribuidor. As duas tabelas deverão estar relacionadas para conseguir fazer join quando precisar, mas para validar senha dependendo do caso só vai precisar ir na tabela Usuario. E Administrador deve ser só um perfil de usuário, pra isso pode modelar a parte de controle de acesso de forma mais abrangente com as permissões x perfis de cada usuário.

Quer dizer usar os dois correto, interessante, uma solução, vou verificar o DAO e tentar aplicar ai dou um feedback, valew…

Javaflex é isso ai amigo, eu estava procurando um melhor caminho para o meu problema, vc tem razão, eu tenho 2 caminhos pra modelar minha estrutura de BD, criar :
Tabela usuarios : Id - email - nome - senha
Tabela admin
Tabela distribuidor telefone - cidade - endereco - cep …

eu naõ preciso criar outra tabela admin até pq o admin tem os mesmos campos tb usuarios correto amigo ?

Depende do que “Admin” representa pro seu sistema, qual seu objetivo? Você poderia especificar isso melhor. Só não faz sentido criar tabela de Admin quando o mesmo não tem características relevantes para ser uma entidade própria. O ideal e mais abrangente é ter um controle de acesso onde serão definidos as permissões do usuário, através de tabelas de perfis x módulos x permissões.

Legal Javaflex, assim, o meu usuario admin so vai estar hierarquicamente acima dos demais,óbvio, vc tem razão ao dizer que ele naõ tem características relevantes, pois o admin tem os campos que já tem na nova tabela usuarios que serve para fazer login…os campos da tabela usuarios: id nome email senha são os mesmos do admin, então se te entendi bem, não precisaria criar esta entidade admin, correto :slight_smile: