YanK Posted January 18, 2011 Share Posted January 18, 2011 Bonjour,Je souhaite modifier la partie importation pour en créer une nouvelle avec plus d'options. J'ai donc dupliqué l'onglet pour en faire un nouveau. Jusque la tout va bien. Le soucis est quand j'essaye d'utiliser la fonction Db::getInstance()->getRow().Voici mon code : $RSQL = 'SELECT SUM(`quantity`) AS somme'; $RSQL .= ' FROM `'._DB_PREFIX_.'stock_mvt` sm'; $RSQL .= ' WHERE `id_product`='.(int)($product->id); $RSQL .= ' AND `quantity`<0'; $RSQL .= ' AND NOT EXISTS ('; $RSQL .= ' SELECT `id_product`'; $RSQL .= ' FROM `'._DB_PREFIX_.'order_history` oh'; $RSQL .= ' WHERE `id_order_state`=3'; $RSQL .= ' AND sm.`id_order`=oh.`id_order`'; $RSQL .= ' );'; $qt = Db::getInstance()->getRow($RSQL); $product->quantity = (int)($product->quantity)+(int)($qt['somme']); La variable $qt est vide alors que lorsque j’exécute la requête directement dans la base de données j'ai les résultats que je souhaite.Quelqu'un peut t-il m'aider ?Merci d'avance. Link to comment Share on other sites More sharing options...
coeos.pro Posted January 18, 2011 Share Posted January 18, 2011 Bonjour, avez vous essayé de remplacer getRow par ExecuteS ? Link to comment Share on other sites More sharing options...
YanK Posted January 18, 2011 Author Share Posted January 18, 2011 Ça fonctionne bien, merci. Je peux récupérer mes données avec $qt[0]['sommes'].Quelle est la différence entre getRow et ExecuteS ?Pourquoi getRow ne fonctionne pas dans cette situation ?J'essaye de comprendre le fonctionnement de prestashop pour développer dessus. Link to comment Share on other sites More sharing options...
coeos.pro Posted January 18, 2011 Share Posted January 18, 2011 Ce type de fonction est détaillée dans le fichier du même nom (avec .php) dans le dossier class, donc ici il faut regarder dans class/Db.php getRow c'est pour récupérer les infos d'une ligne, regarde aussi Execute et ExecuteS Link to comment Share on other sites More sharing options...
YanK Posted January 18, 2011 Author Share Posted January 18, 2011 C'est bien ce qu'il me semblait et n'ayant qu'une ligne je ne comprends pas pourquoi cela ne marche pas. Link to comment Share on other sites More sharing options...
webbax Posted January 18, 2011 Share Posted January 18, 2011 Bonjour,getRow ajoute automatiquement une clause "LIMIT" en fin de requête c'est certainement pour cela.getRow est à recommander pour retourner une ligne d'enregistrement du type "SELECT" mais pas pour du type "COUNT, SUM" etc... Link to comment Share on other sites More sharing options...
YanK Posted January 18, 2011 Author Share Posted January 18, 2011 Ok merci, je comprends mieux du coup.C'est des petites questions comme ça mais ça permet de mieux cerner le système et de pas se faire avoir au prochain coup.Merci 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