Alexandre Carette Posted September 1, 2015 Share Posted September 1, 2015 Bonjour, Je souhaite récupérer le nb de fois ou les clients ont mis un produit dans leur favoris. J'ai donc une fonction avec une requete sql qui compte le nombre de fois ou l'id est présent dans la table favorite_product.(module produit favorids) J'assign ensuite a smarty une variable $likeproductCount global $smarty; $id_product = $_GET["id_product"]; $sql= 'SELECT COUNT(*) FROM `'._DB_PREFIX_.'favorite_product` WHERE `id_product` = '.$id_product.''; $results = Db::getInstance()->ExecuteS($sql); $smarty->assign('likeproductCount', $results); La console debug me donne: $likeproductCount // Smarty_Variable Object (3)->value = Array (1) 0 => Array (1) COUNT(*) => "1"->nocache = false->scope = "file:/var/www/html/monsite/..." Je me retrouve bien avec le nombre de fois ou le produit est ajouté aux favoris. COUNT(*) 1er question: Pourquoi je me retrouve dans un array ? 2eme question: Comment récupérer la variable COUNT(*) dans le tpl. Merci bcp Link to comment Share on other sites More sharing options...
coeos.pro Posted September 1, 2015 Share Posted September 1, 2015 Pourquoi je me retrouve dans un array ?=> par ce que tu utilises ExecuteS, si tu veux directement la valeur utilises getValue : $results = (int)Db::getInstance()->getValue('SELECT COUNT(*) FROM `'._DB_PREFIX_.'favorite_product` WHERE `id_product` = '.$id_product); Ensuite, global $smarty;c'est inutile $id_product = $_GET["id_product"]; Préfère plutôt :$id_product = (int)Tools::getValue('id_product'); Très important : ton code en l'état est une faille de sécurité très importante, quelqu'un qui connait ce code et qui connait une boutique ayant ce module peut mettre n'importe quoi pour id_product dans l'url, y compris un delete ou autre. Ici j'ai rajouté (int) donc ça protège, sinon il aurait fallu utiliser pSQL sur la valeur contenu dans l'URL 1 Link to comment Share on other sites More sharing options...
Alexandre Carette Posted September 1, 2015 Author Share Posted September 1, 2015 Merci, beaucoup coeos.pro ca marche parfaitement. $id_product = (int)Tools::getValue('id_product'); $productlike = (int)Db::getInstance()->getValue('SELECT COUNT(*) FROM `'._DB_PREFIX_.'favorite_product` WHERE `id_product` = '.$id_product); $smarty->assign('likeproductCount', $productlike); en tpl: $likeproductCount Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now