Query was empty

Résolu
tif27940 Messages postés 74 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 21 février 2012 - 2 févr. 2012 à 16:04
tif27940 Messages postés 74 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 21 février 2012 - 2 févr. 2012 à 16:30
Bonjour,

voila j'execute ma requéte et elle me dit :"Query was empty"
$cat_p vient d'un fichier csv

 /////////////////////////verification de la categorie dans a boutique/////////////////////////////////////////////////////////////////////////////////////
if($cat_p == 'a')
$req_cat="SELECT * FROM  j17_virtuemart_categories_fr_fr WHERE  category_name =  'Aménagement intérieur aluminium'";
if($cat_p == 'b')
$req_cat="SELECT * FROM  j17_virtuemart_categories_fr_fr WHERE  category_name =  'Aménagement intérieur acier'";
if($cat_p == 'c')
$req_cat="SELECT * FROM  j17_virtuemart_categories_fr_fr WHERE  category_name =  'Accessoires intérieur'";
if($cat_p == 'e')
$req_cat="SELECT * FROM  j17_virtuemart_categories_fr_fr WHERE  category_name =  'Aménagement extérieur'";
if($cat_p == 'd')
$req_cat="SELECT * FROM  j17_virtuemart_categories_fr_fr WHERE  category_name =  'Equipement complémentaire'";
$res = mysql_query($req_cat); 

if (!$res) 
{
   echo "Impossible d'executer la requete ($req_cat) dans la base : " . mysql_error();
   exit;
}



merci de votre aide

4 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
2 févr. 2012 à 16:24
Et bien voilà, tu viens de trouver l'erreur. $cat_p ne contient pas un seul caractère mais 3, le caractère que tu veux suivi de deux retours à la ligne. Tu peux te servir de la fonction trim() pour les enlever. Allez, parce que ce matin je suis de très bonne humeur et très gentil, je te passe une version améliorée et fonctionnelle de ton code :

<?php

$cat_lst array('a'> 'Aménagement intérieur aluminium',
                 'b' => 'Aménagement intérieur acier',
                 'v' => 'Accessoires intérieur',
                 'd' => 'Equipement complémentaire',
                 'e' => 'Aménagement extérieur'
                 );
$cat_p = trim($cat_p);
if (!array_key_exists($cat_p, $cat_lst))
  die('Invalid category.');

$query 'SELECT * FROM  j17_virtuemart_categories_fr_fr WHERE  category_name \'' . $cat_lst[$cat_p] . '\'';
$res = mysql_query($query);
if ($res === null)
  die('Invalid category.');

?>
3
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
2 févr. 2012 à 16:15
Salut,

L'erreur parle d'elle même, ta requête est vide. Étant donné que tu as une série de if pour gérer ça, tu devrais vérifier la valeur de $cat_p. Avant ton mysql_query(), fais donc ceci :
var_dump($cat_p, $req_cat);


Au passage, ta série de if est super moche, tu devrais utiliser un simple tableau.
0
tif27940 Messages postés 74 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 21 février 2012
2 févr. 2012 à 16:18
je viens de le faire est voici le resultat:
string 'b

' (length=3)
string '' (length=0)

0
tif27940 Messages postés 74 Date d'inscription lundi 24 janvier 2011 Statut Membre Dernière intervention 21 février 2012
2 févr. 2012 à 16:30
merci beaucoup de ton aide
0
Rejoignez-nous