Bonjour à tous,
je n'ai que peu d'expérience avec Virtuemart (et plus généralement avec Mysql), mais je tombe parfois sur des portions de code qui me paraissent peu optimisées ...
A votre avis, dans le cas suivant (fichier ps_order.php > fonction order_status_update) :
ne serait-il pas plus économique en requêtes de faire directement un UPDATE de tous les items correspondants à l'id de commande ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 // Update the Order Items' status $q = "SELECT order_item_id FROM #__{vm}_order_item WHERE order_id=".$d['order_id']; $db->query($q); $dbu = new ps_DB; while ($db->next_record()) { $item_id = $db->f("order_item_id"); $q = "UPDATE #__{vm}_order_item SET order_status='".$d["order_status"]."'" . "\n, mdate='" . $timestamp . "' " . "\n WHERE order_item_id=".$item_id; $dbu->query( $q ); }
Quelle serait l'inconvénient possible (incompatilibité MySql ?) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 // Update the Order Items' status $q = "UPDATE #__{vm}_order_item SET order_status='".$d["order_status"]."'" . "\n, mdate='" . $timestamp . "' " . "\n WHERE order_id=".$d['order_id']; $dbu->query( $q );
Merci d'avance
Partager