Select deux tables mysql pour création de session

Résolu
Bonjour,

Voilà, dans une requête php je demande de sélectionner les attributs de membre ayant rentré son email et son mot de passe selon les tables user et client. Ces tables ont presque les mêmes structure.

Voici mon code
<?php

if (isset($_POST['login'])) 
{
  $email = $_POST['email'];
  $pass = MD5($_POST['pass']);  
 
  $result = mysqli_query($conn," SELECT * FROM user WHERE email = '$email' AND pass = '$pass' UNION ALL SELECT * FROM client WHERE email = '$email' AND pass = '$pass' ");

 
  if(mysqli_num_rows($result)==1){
   
    session_start();
 
  $data=$result->fetch_object();
 
  $_SESSION['email']= $data->email;
  $_SESSION['pass']=$data->pass;

    header('location: index.php?mode=login&type=bureau');
  }   
  else
    header('location: login.php');
}

?>


Je ne sais pas pourquoi il ne fonctionne pas!
Aidez-moi, s'il vous plaît!

1 réponse

  1. Modérateur
    Bonjour,

    Il faut déjà que tu testes ta requête DIRECTEMENT dans ta BDD.
    Sachant que pour un UNION .. les "select" doivent retourner EXACTEMENT les mêmes champs ...

    En gros :
    
    SELECT champ1, toto, titi 
    FROM table1
    WHERE ...
    
    UNION 
    
    SELECT champ1, toto, 'truc' as titi 
    FROM table2
    WHERE ..
    
    

    1. Bonsoir,

      Merci pour votre réponse, est ce que vous pouvez m'aider avec un autre problème?!!
      J'ai deux type d'authentification ! La première est simple avec un email et un mot de passe d'un client mais la deuxième c'est pour les clients non inscrit qui ont déjà ajouté un ticket et veut le suivre, l'authentification sera avec l'email du client et le numéro du ticket.
      Les colonnes de la table ticket sont : ID, sujet, texte, ..., id_client
    2. Modérateur
      Nouvelle question = nouvelle discussion
      après avoir mis celle la en resolue....