Erreur SQL ! You have an error in your SQL

Fermé
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 - 7 juil. 2008 à 15:17
 Mélité - 24 juin 2011 à 17:09
Bonjour,

ça fait maintenant des jours que je me penche sur ce problème.

Ma requête me retourne :

*********************************

Erreur SQL !
SELECT * FROM MaTable

WHERE mail_contact='LeMail' AND pass='******'
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '

WHERE mail_contact='LeMail' AND pass='******'' at line 1

***********************************

En fait mon code traite un formulaire d'identification à 3 champs dont les données recueillies vont servir pour une identification du visiteur.
Le premier champ sert à identifier la table concernée dans la BDD, les deux autres à vérifier si le couple login et mot de passe existent bien dans la table prédéfinie.

Voici une portion de mon code

**************PHP******************

mysql_connect ("", "", "");
mysql_select_db ("");

$sql = "SELECT * FROM $sigle_etab WHERE mail_contact='$mail_contact' AND pass='$pass'";
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
$data = mysql_fetch_array($req);

mysql_free_result($req);
mysql_close();

// si on obtient une réponse, alors l'utilisateur est un membre
if ($data[0] == 1) {
session_start();
$_SESSION['sigle_etab'] = $_POST['sigle_etab'];
header('Location: accueil.php');
exit();
}
// si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son login, soit dans son mot de passe
elseif ($data[0] == 0) {
$erreur = 'Compte non reconnu.';
}

****************************************

J'ai essayé de remplacer les ' par des " et vice versa et aussi plein d'autres solutions d'aprés ce que j'ai eu à lire sur différents forums mais rien à faire. Je m'excuse d'avance si une réponse à déjà été donnée pour ce type d'erreur et vous demande de me communiquer l'emplacement si c'est le cas.
Si non, ou se trouve mon erreur, ou que dois je faire à la place?

Merci d'avance

4 réponses

Bonjour,

Si tu n'as pas résolu ton problème envoi moi ton script et ta bdd sur samir_bogos"at"hotmail.com

a++
0
salimdrame Messages postés 70 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 24 juin 2011 1
7 juil. 2008 à 17:16
J'apprécie Loudi, l'intention est noble. Mais je préfére ne pas communiquer certaines informations car le projet sur lequel je travaille est trés sensible. Cependant je peux te fournir plus d'infos de code si ca peux t'aider
0
a
0
Essayes de mettre des parenthese :

$sql = "SELECT * FROM $sigle_etab WHERE (mail_contact='$mail_contact') AND (pass='$pass')";

A +
0
Lumpy-Rock Messages postés 68 Date d'inscription jeudi 6 mai 2010 Statut Membre Dernière intervention 19 juillet 2014 1
1 mai 2011 à 20:58
Bonjour :)

C'est très bizarre, tout a l'air juste...
Essaie de remplacer toutes les variables de ta requête par des vraies chaines de caractères, pour voir si le problème est là.

Ex.
$sql = "SELECT * FROM Matable WHERE mail_contact='mail' AND pass='mot_de_passe'"; 


En essayant de mettre des valeurs de façon à ce qu'elles correspondent à la table et qu'elles ne provoquent pas des erreurs de type Champ/Table Inconnu(e)...
0
remplace
$sql = "SELECT * FROM $sigle_etab WHERE mail_contact='$mail_contact' AND pass='$pass'";

par
$sql = "SELECT * FROM '$sigle_etab' WHERE mail_contact='$mail_contact' AND pass='$pass'";

(guillemets autour de la variable qui te donne le nom de la table, comme tu l'as fait avec $mail_contact et $pass)
0