raitiamine Posted August 19, 2011 Share Posted August 19, 2011 Bonjour tout le monde, j'ai créer un petit script qui mettra a jour le prix de vente des produits selon le prix d'achat en appliquant une marge différente pour chaque tranche. Exemple : si le prix d'achat est entre 0 et 100€ ajout d'une marge de 20%. si le prix d'achat est entre 100 et 200€ ajout d'une marge de 18%. si le prix est entre 200 et 400 euros, application d'une marge de 14% ainsi de suite ... le problème c'est que qu'on j'exécute le script les prix de vente sur la boutique passe a 0€ quelque soit le prix d'achat. alors je me tourne vers vous pour me corriger car je suis débutant en PHP/MYSQL. Voilà le script : <?php try { $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION; $bdd = new PDO('mysql:host=localhost;dbname=ma_base', 'utilisateur', 'mot de passe'); // Selection des produits $rep = $bdd->query('SELECT * FROM ps_product'); while ($data = $rep->fetch()) { // Si le prix est entre 0 et 50 euros, application d'une marge de 20% if ( $data['wholesale_price'] >= 0 AND $data['wholesale_price'] <= 50 ) { $prix = $data['wholesale_price'] + $data['wholesale_price'] * 20/100; $bdd->exec('UPDATE ps_product SET price = $prix'); } // Si le prix est entre 50 et 100 euros, application d'une marge de 18% if ( $data['wholesale_price'] > 50 AND $data['wholesale_price'] <= 100 ) { $prix = $data['wholesale_price'] + $data['wholesale_price'] * 18/100; $bdd->exec('UPDATE ps_product SET price = $prix'); } // Si le prix est entre 100 et 200 euros, application d'une marge de 16% if ( $data['wholesale_price'] > 100 AND $data['wholesale_price'] <= 200 ) { $prix = $data['wholesale_price'] + $data['wholesale_price'] * 16/100; $bdd->exec('UPDATE ps_product SET price = $prix'); } // Si le prix est entre 200 et 400 euros, application d'une marge de 14% if ( $data['wholesale_price'] > 200 AND $data['wholesale_price'] <= 400 ) { $prix = $data['wholesale_price'] + $data['wholesale_price'] * 14/100; $bdd->exec('UPDATE ps_product SET price = $prix'); } // Si le prix est entre 400 et 600 euros, application d'une marge de 12% if ( $data['wholesale_price'] > 400 AND $data['wholesale_price'] <= 600 ) { $prix = $data['wholesale_price'] + $data['wholesale_price'] * 12/100; $bdd->exec('UPDATE ps_product SET price = $prix'); } // Si le prix est entre 600 et 1000 euros, application d'une marge de 10% if ( $data['wholesale_price'] > 600 AND $data['wholesale_price'] <= 1000 ) { $prix = $data['wholesale_price'] + $data['wholesale_price'] * 10/100; $bdd->exec('UPDATE ps_product SET price = $prix'); } // Si le prix est superieur à 1000 euros, application d'une marge de 8% if ( $data['wholesale_price'] > 1000 AND $data['wholesale_price'] <= 10000 ) { $prix = $data['wholesale_price'] + $data['wholesale_price'] * 8/100; $bdd->exec('UPDATE ps_product SET price = $prix'); } } $rep->closeCursor(); } catch (Exception $e) { die('Erreur : ' . $e->getMessage()); } ?> Merci Link to comment Share on other sites More sharing options...
mexique1 Posted September 3, 2011 Share Posted September 3, 2011 Salut, Le souci, c'est que tu utilises des simple quotes ('') pour écrire tes requetes, et que ainsi PHP n'interprete pas $prix. Essaie plutot : $bdd->exec('UPDATE ps_product SET price = ' . $prix); De plus, il n'y a pas de clause WHERE dans tes requetes UPDATE, ce qui fait que tu mets à jour TOUS les prix à chaque requete !!! Il faut que tu ajoutes : $bdd->exec('UPDATE ps_product SET price = ' . $prix . ' WHERE id_product = ' . $data); A+ Link to comment Share on other sites More sharing options...
raitiamine Posted September 20, 2011 Author Share Posted September 20, 2011 Bonjour mexique1 Merci pour ton intervention 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