Problème avec une requête sql

Résolu
Bonjour,

S'il vous plait est ce que vous pouvez me dire pourquoi cette requête ne fonctionne pas alors que je l'ai tester a plusieurs reprise elle est 100% correcte


<?php $sql = 'SELECT mail, mdp, nomsociete FROM users inner join societe on users.idsociete=societe.idsociete where mail="'.mysql_escape_string($_POST['mail']).'" AND mdp="'.mysql_escape_string($_POST['mdp']).'" AND nomsociete="'.$_SESSION['nomsociete'].'"';
?>


quand j'essaie avec cella ca marche:

$sql = 'SELECT * FROM users WHERE mail="'.mysql_escape_string($_POST['mail']).'" AND mdp="'.mysql_escape_string($_POST['mdp']).'"';


mais dès que j'ajoute users.idsociete=societe.idsociete ça ne retourne rien, comme dans cette requete :

	$sql = 'SELECT mail, mdp, nomsociete FROM users inner join societe on users.idsociete=societe.idsociete where mail="'.mysql_escape_string($_POST['mail']).'" AND mdp="'.mysql_escape_string($_POST['mdp']).'"';


Merci d'avance pour vos réponses

3 réponses

  1. Elle me retourne 3 enregistrements avec le mail, mdp et le nomsociete
    J'ai trouvé ou est le problème, c'est dans une boucle que j'ai fais après la requête
    Merciii pour le temps accordé
    1. Modérateur
      Bonjour,

      1 - Attention, l'extension mysql était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0.
      https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top

      À la place, tu peux (<gras DOIS </gras> ) utiliser l'extension MySQLi ou l'extension PDO_MySQL
      https://www.commentcamarche.net/faq/44117-connexion-a-une-base-avec-pdo-mysqli

      Si tu choisis PDO, pense à activer la gestion des erreurs : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

      2 - Il est préférable de récupérer les variables AVANT de les utiliser
      $mail = !empty($_POST['mail']) ? mysql_escape_string($_POST['mail']) : NULL;
      $mdp = !empty($_POST['mdp']) ? mysql_escape_string($_POST['mdp']) : NULL;
      
      if($mail && $mdp){
      $sql = "SELECT mail, mdp, nomsociete 
                FROM users U
                INNER JOIN societe S ON S.idsociete = U.idsociete 
                WHERE mail='$mail' 
                   AND mdp='$mdp' ";
      
      echo "La requete est :" . $sql;
      
      //la suite de ton code
      
      
      } // fin du if
      


      3 - Peux tu faire un echo de ta variable $sql et nous montrer ce que ça t'affiche. ( puis copier ce résultat dans ton phpmyadmin afin de t'assurer qu'elle marche telle qu'elle en sql )

      Cordialement, 
      Jordane                                                                 
      1. D'accord mais dans ce cas dans tes deux tables tu n'as pas les ids qui correspondent.

        As-tu phpMyAdmin installé ? Tu peux regarder que les ids existent dans chaque tables
        1. Merci Felice pour ta réponse.
          pour les ids ils correspondent
          oui j'ai installé phpMyAdmin, c'est la ou j'ai testé la requête et elle me retourne le résultat souhaité
        2. Ça donne quoi :
          $sql = 'SELECT mail, mdp, nomsociete FROM users inner join societe on users.idsociete=societe.idsociete;


          ?