Bonjour,
J'ai, pour une boutique en ligne sur prestashop, un tableau de prix en fonction du poids et du département.
Les départements sont regroupés en 4 zones et comme j'ai 40 tranches de poids, j'ai donc 160 cas différents.
Le problème c'est qu'il faut remplir manuellement les 160 cas par environ 100 départements, soit 16000 enregistrements
Je cherche à créer un script php pour remplir automatiquement le reste du tableau après avoir renseigné les 160 cas de départ.
Le programme parcours la base de données, si il rencontre un prix différent de zéro, il va attribuer ce prix à tous les enregistrements pour lesquelles id_carrier et id_range_weight sont identiques à l'enregistrement de base.
Voila mon script qui ne fonctionne pas:
Pouvez-vous m'aider à résoudre ce problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 <?php // connexion a la base de données try{ $bdd = new PDO('mysql:host=#####;dbname=#####', '#####', '#####'); } catch (Exception $e){ die('Erreur : ' . $e->getMessage()); } $reponse = $bdd->query('SELECT * FROM ps_delivery '); while ($donnees = $reponse->fetch()) { if ($donnees['price']!=0){ ajout($donnees['id_carrier'],$donnees['id_range_weight'],$donnees['price']); } } function ajout($carrier, $poids, $prix){ $reponse2 = $bdd->query('SELECT * FROM ps_delivery '); while ($donnees2 = $reponse2->fetch()) { echo 'carrier : '.$carrier; $bdd->exec('UPDATE ps_delivery SET price ='.$prix.' WHERE id_carrier ='.$carrier.'AND id_range_weight ='. $poids); } } $reponse->closeCursor(); $reponse2->closeCursor(); ?>
Partager