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. 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;


      ?
  2. 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. 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é