select en sql

WRInaute impliqué
Bonjour,

j'utilise ce code :

Code:
$slug='animal';
$enscat= "SELECT * from categorie where slug = '".$slug."'";
$dbdbcat=mysql_query($enscat);
$ensegcat = mysql_fetch_array($dbdbcat);
echo $ensegcat['id'];

ça marche très bien quand $slug est dans la table, mais si slug (animal) n'est pas dans la table ça m'affiche :

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 '' at line 1

une idée ?

Merci
 
WRInaute impliqué
$slug='animal'; marche pas car le mot animal n'existe pas dans le champs slug de la table

$slug='pomme'; marche très bien car le mot pomme existe dans le champs !

je trouve que c'est bizarre
 
WRInaute impliqué
C'est peut-être que ton erreur est dans une autre requête non ? Dans une requête où tu utiliserai $ensegcat['id'].
 
WRInaute impliqué
Non si je change le mot dans la variable, un nom qui n'exiiste. Pass sans. La bdd ca foirr sinon caa marche
 
WRInaute impliqué
L'erreur que tu cites n'est jamais générée quand aucun résultat n'est trouvé. Tout simplement parce que "aucun résultat" n'est jamais une erreur.

Donc :
- soit les exemples de mot que tu donnes ne sont pas les vrais (exemple, un ' dans un mot provoquerai ton erreur).
- soit l'erreur est ailleurs, dans ce cas, donnes nous un peu plus de code.

As-tu quelques une requête SQL qui utilises le contenu de $ensegcat['id'] ?
Car si tu as une requête du genre :
SELECT * FROM Machin WHERE truc_id = $ensegcat['id']
Alors, c'est cette requête qui plante.
 
WRInaute impliqué
Grace à la fonction die() je viens de localiser lerreur et effectivement elle vient d'en bas, un moyen pour tester si select ne contient aucune ligne ?
Merci
 
WRInaute impliqué
sigma2008 a dit:
Grace à la fonction die() je viens de localiser lerreur et effectivement elle vient d'en bas, un moyen pour tester si select ne contient aucune ligne ?
Merci
Si aucune ligne, alors mysql_fetch_array retourne false.
Donc : $ensegcat === false => pas de ligne.
 
Discussions similaires
Haut