Requête SQL
nity
-
nity -
nity -
Bonjour,
J'ai besoin d'une âme charitable pour me dépatouiller d'un problème que je n'arrive pas à résoudre :$
j'ai deux tables :
produit : produit.id_produit, produit.nom, produit.id_marque etc...
marque : marque.id_marque, marque.nom, marque.description.. etc.
J'aimerai pouvoir compter le nombre de produits qui appartiennent à telle marque afin de pouvoir calculer mon nombre de pages. Malheureusement, j'arrive pas à faire ce count !
Voici ma requête :
ça me sort une erreur : Unknown column 'Philipps' in 'where clause'
Et si je rajoute ma table marque dans mon FROM, ça me sort : Not unique table/alias: 'marque'
Grrr. !!
J'avoue être bloqué. Où sont mes erreurs ?
Merci beaucoup !
J'ai besoin d'une âme charitable pour me dépatouiller d'un problème que je n'arrive pas à résoudre :$
j'ai deux tables :
produit : produit.id_produit, produit.nom, produit.id_marque etc...
marque : marque.id_marque, marque.nom, marque.description.. etc.
J'aimerai pouvoir compter le nombre de produits qui appartiennent à telle marque afin de pouvoir calculer mon nombre de pages. Malheureusement, j'arrive pas à faire ce count !
Voici ma requête :
$marqueChoisie = Philipps; $req_compteur = "SELECT COUNT(DISTINCT id_produit) AS nbre_entrees FROM produit LEFT JOIN marque ON produit.id_marque = marque.id_marque WHERE produit.id_categorie=".$categorieChoisie." AND produit.visible=1 AND marque.nom_marque=".$marqueChoisie." "; $result = mysql_query($req_compteur) or die (mysql_error()); $compteur=mysql_fetch_row($result); $total = $compteur[0]; echo $total;
ça me sort une erreur : Unknown column 'Philipps' in 'where clause'
Et si je rajoute ma table marque dans mon FROM, ça me sort : Not unique table/alias: 'marque'
Grrr. !!
J'avoue être bloqué. Où sont mes erreurs ?
Merci beaucoup !
A voir également:
- Requête SQL
- Logiciel sql - Télécharger - Bases de données
- Sql lister les tables ✓ - Forum Programmation
- Requête bloquée par le pare-feu applicatif claranet webfence ✓ - Forum Réseaux sociaux
- Jointure sql ✓ - Forum MySQL
- Erreur lors de l'envoi de la requête facebook - Forum Facebook
4 réponses
Bonjour,
Ton message Unknown column 'Philipps' in 'where clause' signifie qu'il ne connaît pas le champ Philipps.
Je suppose que c'est normal, parce que tu n'as pas de champ Philipps. Pour toi, c'est une valeur.
C'est une erreur classique. Pour mysql, un mot qui n'est pas entre quotes (simples ou doubles) c'est un nom de champ, pas une valeur.
Quand dans ta requête tu as WHERE nom_marque = Philipps, il cherche les enregistrements pour lesquels les champs nom_marque et Philipps sont égaux.
Quand dans ta requête tu as WHERE nom_marque = 'Philipps', il cherche les enregistrements pour lesquels le champ nom_marque contient le texte Philipps .
Il suffit d'ajouter des simples quotes
Il faut faire cette modification pour tous les champs qui contiennent un texte (pas utile pour les nombres, car un nombre ne peut pas être pris pour un nom de champ.
Ton message Unknown column 'Philipps' in 'where clause' signifie qu'il ne connaît pas le champ Philipps.
Je suppose que c'est normal, parce que tu n'as pas de champ Philipps. Pour toi, c'est une valeur.
C'est une erreur classique. Pour mysql, un mot qui n'est pas entre quotes (simples ou doubles) c'est un nom de champ, pas une valeur.
Quand dans ta requête tu as WHERE nom_marque = Philipps, il cherche les enregistrements pour lesquels les champs nom_marque et Philipps sont égaux.
Quand dans ta requête tu as WHERE nom_marque = 'Philipps', il cherche les enregistrements pour lesquels le champ nom_marque contient le texte Philipps .
Il suffit d'ajouter des simples quotes
$req_compteur = "SELECT COUNT(DISTINCT id_produit) AS nbre_entrees FROM produit LEFT JOIN marque ON produit.id_marque = marque.id_marque WHERE produit.id_categorie=".$categorieChoisie." AND produit.visible=1 AND marque.nom_marque='".$marqueChoisie."'";
Il faut faire cette modification pour tous les champs qui contiennent un texte (pas utile pour les nombres, car un nombre ne peut pas être pris pour un nom de champ.
Bonjour,
Merci d'avoir pris le temps de me répondre, c'est très gentil à vous.
J'ai rajouté les simples quotes comme souhaité, l'erreur n'est maintenant plus la même. J'obtiens ceci : Not unique table/alias: 'marque'.
Est-ce un problème de jointure ?
Merci
Merci d'avoir pris le temps de me répondre, c'est très gentil à vous.
J'ai rajouté les simples quotes comme souhaité, l'erreur n'est maintenant plus la même. J'obtiens ceci : Not unique table/alias: 'marque'.
Est-ce un problème de jointure ?
Merci
$req_compteur = "SELECT COUNT(DISTINCT id_produit) AS nbre_entrees FROM produit LEFT JOIN marque ON produit.id_marque = marque.id_marque WHERE produit.id_categorie=".$categorieChoisie." AND produit.visible=1 AND marque.id_marque=$marqueChoisie ";
$result = mysql_query($req_compteur) or die (mysql_error());
$compteur=mysql_fetch_row($result);
$total = $compteur[0];
Cela fonctionne !
Merci :D
j'en ai profité pour traiter mes marques par ID au lieu d'une varchar. Merci encore !
Bonne fin de weekend.
$result = mysql_query($req_compteur) or die (mysql_error());
$compteur=mysql_fetch_row($result);
$total = $compteur[0];
Cela fonctionne !
Merci :D
j'en ai profité pour traiter mes marques par ID au lieu d'une varchar. Merci encore !
Bonne fin de weekend.