abouzouzou Posted June 28, 2022 Share Posted June 28, 2022 (edited) bonjour, J'essaie de modifier un plugin que j'ai déja modifié dans une autre installation, donc je reprend simplement le code de une installation et la copie dans l'autre. Dans la requête sql de la table Orders, j'ajoute 2 nouveaux champs qui sont présents et je recupere simplement le resultat sauf que dans cette installation il m'affiche rien dans le résultat, il m'affiche les valeurs par défaut des colonnes... ci-joint une partie du code : $req_order = "SELECT `id_order`,`id_cart`,`id_carrier`,`id_address_delivery`,`reference`,`total_paid_tax_incl`,`total_paid_tax_excl`,`ddw_order_date`,`ddw_order_time`,`payment`,`id_shop`,`id_lang` FROM `".DB_PREFIX."orders` WHERE `id_order` = " . $id_order . " ORDER BY `id_order` ASC LIMIT 1"; $rez_order = Db::getInstance()->executeS($req_order); j'ai juste ajoute "ddw_date_order" ,"ddw_order_time" et enleve "date_add" a la requête deja existante ici la liste des donnees en base de donnees : et quand je log le resultat : $logger->logDebug($rez_order['0']); voici la sortie : ( [id_order] => 14 [id_cart] => 20 [id_carrier] => 28 [id_address_delivery] => 17 [reference] => ZWNYHIMOT [total_paid_tax_incl] => 6.500000 [total_paid_tax_excl] => 5.910000 [ddw_order_date] => 0000-00-00 00:00:00 [ddw_order_time] => [payment] => Paiement comptant à la livraison (Cash on delivery) [id_shop] => 1 [id_lang] => 2 ) Une idee ? sachant que jai 3 ou 4 commndes uniquement car je suis encore en DEV. je comprends vraiment pas, si je remet date_add j'ai bien la date Edited July 1, 2022 by abouzouzou (see edit history) Link to comment Share on other sites More sharing options...
Tom Girou Posted June 28, 2022 Share Posted June 28, 2022 Pourquoi faire un champ pour l'heure alors que votre premier champ est un datetime comprenant l'heure ? Vous auriez pu combiner les deux. Si vous testez votre requête dans PhpMyAdmin cela vous retourne un résultat correct ou pas ? Link to comment Share on other sites More sharing options...
Mediacom87 Posted June 28, 2022 Share Posted June 28, 2022 il y a 13 minutes, Tom Girou a dit : Pourquoi faire un champ pour l'heure alors que votre premier champ est un datetime comprenant l'heure ? Vous auriez pu combiner les deux. J'imagine que c'est une plage horaire de retrait d'un module mal développé puisqu'il modifie une table native au lieu d'utiliser la sienne histoire de bien planter toutes les prochaines mises à jour de PrestaShop. Link to comment Share on other sites More sharing options...
abouzouzou Posted June 28, 2022 Author Share Posted June 28, 2022 1 minute ago, Tom Girou said: Pourquoi faire un champ pour l'heure alors que votre premier champ est un datetime comprenant l'heure ? Vous auriez pu combiner les deux. Si vous testez votre requête dans PhpMyAdmin cela vous retourne un résultat correct ou pas ? comme expliqué c'est une modification de plugin d'impression pour prendre les données ajoutées par un autre plugin de choix d'heures et de date,donc les données en DB ne sont pas ajoutées par moi (donc ca c'est un autre debat ^^). Et j'ai pas testé la requete direct je vais le faire pour voir merci Link to comment Share on other sites More sharing options...
abouzouzou Posted June 28, 2022 Author Share Posted June 28, 2022 4 minutes ago, Mediacom87 said: J'imagine que c'est une plage horaire de retrait d'un module mal développé puisqu'il modifie une table native au lieu d'utiliser la sienne histoire de bien planter toutes les prochaines mises à jour de PrestaShop. Pas bete malheuresement quand on prend le plugin on voit pas le code source, parce que en lui meme le plugin est joli et bien utile... Mais énormément de plugins modifient directement la table Orders... Alors j'ai pas regardé les bonnes pratique de prestashop je saurais pas dire si c'est recommandé ou pas si la procedure d'update est propre ou non mais bon comme dis avamt c'est un autre débat ^^. Link to comment Share on other sites More sharing options...
Mediacom87 Posted June 28, 2022 Share Posted June 28, 2022 il y a une heure, abouzouzou a dit : Mais énormément de plugins modifient directement la table Orders... Alors j'ai pas regardé les bonnes pratique de prestashop je saurais pas dire si c'est recommandé ou pas si la procedure d'update est propre ou non mais bon comme dis avamt c'est un autre débat ^^. Tout à fait, un autre débat, mais franchement, c'est agaçant. Par contre, petite précision, ce n'est pas spécifique à PrestaShop, c'est la même chose pour tous les CMS, on ne touche jamais les tables natives, mais il semble que les développeurs ne savent pas réellement ce qu'ils font et comme vous le dit, c'est beau, après les clients se fichent royalement de savoir si c'est bien codé et je trouve cela triste tellement je trouve de modules développés n'importe comment. il y a une heure, abouzouzou a dit : Et j'ai pas testé la requete direct je vais le faire pour voir merci C'est une pratique à apprendre, lorsque vous intervenez sur un problème SQL il faut toujours effectuer un test dans un client SQL afin d'avoir un retour d'erreur précis si elle existe. Link to comment Share on other sites More sharing options...
abouzouzou Posted June 28, 2022 Author Share Posted June 28, 2022 32 minutes ago, Mediacom87 said: Tout à fait, un autre débat, mais franchement, c'est agaçant. Par contre, petite précision, ce n'est pas spécifique à PrestaShop, c'est la même chose pour tous les CMS, on ne touche jamais les tables natives, mais il semble que les développeurs ne savent pas réellement ce qu'ils font et comme vous le dit, c'est beau, après les clients se fichent royalement de savoir si c'est bien codé et je trouve cela triste tellement je trouve de modules développés n'importe comment. C'est une pratique à apprendre, lorsque vous intervenez sur un problème SQL il faut toujours effectuer un test dans un client SQL afin d'avoir un retour d'erreur précis si elle existe. Merci de me rappeler comment coder ^^ jt tellement dans la surprise de ce que j'avais que j'ai oublié d'essayer! Link to comment Share on other sites More sharing options...
Mediacom87 Posted June 28, 2022 Share Posted June 28, 2022 il y a 30 minutes, abouzouzou a dit : Merci de me rappeler comment coder ^^ jt tellement dans la surprise de ce que j'avais que j'ai oublié d'essayer! Cela arrive souvent lorsque l'on est dans l'action 😉 Link to comment Share on other sites More sharing options...
abouzouzou Posted July 1, 2022 Author Share Posted July 1, 2022 Bon je reprend après un petit passage COVID, la requête fonctionne dans SQL, donc c'est au niveau php et le exec qu'il doit y avoir un soucis... Link to comment Share on other sites More sharing options...
abouzouzou Posted July 1, 2022 Author Share Posted July 1, 2022 (edited) ce qui est quand même extraordinaire $req_order = "SELECT `id_order`,`id_cart`,`id_carrier`,`id_address_delivery`,`reference`,`total_paid_tax_incl`,`total_paid_tax_excl`,`date_add`,`ddw_order_date`,`ddw_order_time`,`payment`,`id_shop`,`id_lang` FROM `"._DB_PREFIX_."orders` WHERE `id_order` = " . $id_order . " ORDER BY `id_order` ASC LIMIT 1"; $rez_order = Db::getInstance()->executeS($req_order); cette requête ou on a ajouté date_add rameène cette dernière *DEBUG* v1.7.7.6 2022/07/01 - 11:45:38: Array ( [0] => Array ( [id_order] => 16 [id_cart] => 22 [id_carrier] => 28 [id_address_delivery] => 17 [reference] => WCPJUJTGN [total_paid_tax_incl] => 3.000000 [total_paid_tax_excl] => 2.840000 [date_add] => 2022-07-01 11:45:38 [ddw_order_date] => 0000-00-00 00:00:00 [ddw_order_time] => [payment] => Paiement comptant à la livraison (Cash on delivery) [id_shop] => 1 [id_lang] => 2 ) ) ici la structure des champs et ici les data on ne doit rien définir pour que le executeS fonctionne ? aucun mapping j'ai regardé je vois nulle part, par contre j'ai essayé d'ajouter une autre date de la DB , delivery date et le résultat est le même que pour mes 2 champs donc il doit y avoir quelque chose avec le execute ou getInstance ( [0] => Array ( [id_order] => 17 [id_cart] => 23 [id_carrier] => 25 [id_address_delivery] => 17 [reference] => ZOIRCKLHZ [total_paid_tax_incl] => 4.500000 [total_paid_tax_excl] => 4.090000 [date_add] => 2022-07-01 11:58:03 [ddw_order_date] => 0000-00-00 00:00:00 [ddw_order_time] => [delivery_date] => 0000-00-00 00:00:00 [payment] => Paiement comptant à la livraison (Cash on delivery) [id_shop] => 1 [id_lang] => 2 ) ) Edited July 1, 2022 by abouzouzou (see edit history) Link to comment Share on other sites More sharing options...
Mediacom87 Posted July 1, 2022 Share Posted July 1, 2022 Et vous êtes certains des données de la commande 17 dans la base de données ? Link to comment Share on other sites More sharing options...
abouzouzou Posted July 1, 2022 Author Share Posted July 1, 2022 7 minutes ago, Mediacom87 said: Et vous êtes certains des données de la commande 17 dans la base de données ? franchement ca fait 3 jours je devient bargeot. Link to comment Share on other sites More sharing options...
abouzouzou Posted July 1, 2022 Author Share Posted July 1, 2022 C'est bon j'ai trouvé grâce à vous en vous parlant. Il s'agissait d'une histoire de Hook.... un hook était manquant et un autre dans le mauvais order, donc la requête etait executée avant que le hook ne enregistre les données... 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