2017-09-20 4 views
-1

Bonjour,Utiliser plusieurs clauses WHERE pour afficher le résultat?

J'espérais que quelqu'un puisse m'aider. J'utilise VirtueMart dans Joomla. J'ai trouvé un moyen de changer la disposition des produits qui le transforme en une liste.

Dans VirtueMart, vous pouvez créer des champs personnalisés, dont vous pouvez définir la valeur une fois que vous créez un nouveau produit. Maintenant, dans cet exemple, j'ai deux champs personnalisés:

  1. Date d'expiration
  2. Numéro de lot

Maintenant, le morceau de code suivant affiche le « customfield_value » de la table correcte dans la base de données WHERE "customfield_value" est égal à "virtuemart_product_id".

<?php //make a database connection and find the field record that contains the customfield string 
$db = JFactory::getDBO(); 
$db->setQuery("SELECT customfield_value FROM jos_virtuemart_product_customfields WHERE virtuemart_product_id=".$product->virtuemart_product_id.";"); 
$db->query(); 
$result = $db->loadResult(); 
echo ($result) ?> 

Tout cela est très bien. Il doit le faire. Cependant, il y a un problème. Lorsque je copie ce morceau de code pour l'autre "customfield_value" (numéro de lot), il affiche toujours uniquement la première "customfield_value" (date d'expiration).

Alors maintenant, il faut deux conditions:

Il doit montrer la « customfield_value » où le « customfield_ID » = « 2 » et où il est égal à la « product_id » en cours.

J'espère que cela a du sens.

J'ai écrit un code ci-dessous qui, je l'espère, vous donne une idée de ce qu'il doit faire. Quelqu'un peut-il aider s'il vous plaît me passe en revue ce code et voir ce que je fais mal:

<?php //make a database connection and find the field record that contains the customfield string 
$db = JFactory::getDBO(); 
$db->setQuery("SELECT customfield_value,customfield_id,virtuemart_product_id FROM jos_virtuemart_product_customfields WHERE virtuemart_product_id=".$product->virtuemart_product_id.";". AND "WHERE customfield_id=5"); 
$db->query(); 
$result = $db->loadResult(); 
echo ($result) ?> 

Merci pour la lecture et j'espère que quelqu'un peut me aider. J'ai eu du mal avec ça et je n'arrive pas à faire les choses correctement.

Répondre

1

Vous ne devez pas utiliser plusieurs mots clés dans un état WHERE il suffit d'utiliser AND pour les séparer dans où également supprimer ; du milieu de la requête

$db->setQuery("SELECT customfield_value,customfield_id,virtuemart_product_id 
FROM jos_virtuemart_product_customfields WHERE 
virtuemart_product_id=".$product->virtuemart_product_id." AND customfield_id=5"); 
+0

Merci beaucoup un homme, je vais faire un essai! J'espère que cela fonctionne puisque j'ai essayé de déconner avec la structure du code mais n'ai pas essayé cette version. – MailBlade