Php my admin [Résolu]

Signaler
Messages postés
94
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
5 mai 2020
-
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
salut!
je suis entraine de faire un script qui permet d'augmenter l'ensemble des prix de vente finaux de 10%.Il marche mais il ne peut pas traiter chaque ligne a part.. répondez moi S-V-P
voici le script:

<html><head>
<title>interroger une BD</title></head>

<?
mysql_connect("localhost","root","");
mysql_select_db("info2");
$taux=0.1;
$reponse1=mysql_query("select prixfin from mat");
while ($donnees=mysql_fetch_array($reponse1))
{$nprix=($donnees['prixfin']*$taux)+$donnees['prixfin'];
}
$reponse2=mysql_query("update mat set prixfin=$nprix");// mat : c'est la table
echo "mise a jour effectué avec succés";
mysql_close();

?>

</html>

22 réponses

Messages postés
94
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
5 mai 2020

En fin voici la solution :

<html><head>
<title>interroger une BD</title></head>

<?
mysql_connect("localhost","root","");
mysql_select_db("info2");

$reponse=mysql_query("update mat set prixfin=prixfin*0.1+prixfin");
echo "mise a jour effectué avec succés";
mysql_close();
?>


</html>
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
<?
mysql_connect("localhost","root","");
mysql_select_db("info2");
$taux=0.1;
$reponse=mysql_query("SELECT prixfin FROM mat");
while ($donnees=mysql_fetch_assoc($reponse))
{
$nprix=($donnees['prixfin']*$taux)+$donnees['prixfin'];
mysql_query("UPDATE mat SET prixfin=$nprix;");
}
echo "Mise à jour effectuée avec succés";
mysql_close();

?> 

---
VB.NET is good ... VB6 is better
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Oops grosse erreur de ma part. Il me manque une info pour corriger : quel est le nom du champ identifiant de ta table ?
---
VB.NET is good ... VB6 is better
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Une seule requête suffit :
UPDATE mat SET prixfin = prixfin * 1.1;


--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Ah c'est juste ! J'étais tellement fixé sur l'idée de parcourir toute la table ...
Voilà le code en PHP :
<?
mysql_connect("localhost","root","");
mysql_select_db("info2");
$taux=0.1;
mysql_query("UPDATE mat SET prixfin=prixfin*$taux;");
echo "Mise à jour effectuée avec succés";
mysql_close();
?>

---
VB.NET is good ... VB6 is better
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Tu rajoutes une erreur. Pour ajouter 10%, il faut multiplier par 1.1 et non pas par 0.1

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
Mais qu'est-ce que je peux être con des fois !
Logiquement ça devrait aller :
$taux=1.1;

---
VB.NET is good ... VB6 is better
Messages postés
94
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
5 mai 2020

Merci pour vos réponses.
le nom du champ identifiant c'est: ref

la requête elle s'applique toujours sur toutes les lignes et non a chaque ligne a part, voila le résultat:

ref IMP56 désignation IMPRIMANTE prix(ht)2500 prix(ttc) 3000 rabais 0.05 prixfinal 4287.18 qte 12
ref DV10 désignation LECT DVD ROM prix(ht)1400 prix(ttc) 1680 rabais 0 prixfinal 4287.18 qte 20
ref PC4 désignation ORDINATEUR prix(ht)12000 prix(ttc) 14400 rabais 0.15 prixfinal 4287.18 qte 6
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Non. La requête exécute la multiplication pour chaque ligne. Donc le résultat, pour chaque ligne, diffère, puisque la valeur de prixfinal diffère sur chaque ligne.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
@menyarito
Merci de ne pas me contacter par MP, si tu as des interrogations postent les ici afin que cela profite à tout le monde et que l'aide qui puisse t'être apportée soir meilleure.

Si tu postai ton code modifié par exemple ?



Kohntark -
Messages postés
94
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
5 mai 2020

le but du script c'est d'augmenter les prix de vente finaux par 10%

le code:
<html><head>
<title>interroger une BD</title></head>

<?
mysql_connect("localhost","root","");
mysql_select_db("info2");
$taux=0.1;
$reponse1=mysql_query("select prixfin from mat");
while ($donnees=mysql_fetch_array($reponse1))
{$nprix=($donnees['prixfin']*$taux)+$donnees['prixfin'];
}
$reponse2=mysql_query("update mat set prixfin=$nprix");// mat : c'est la table
echo "mise a jour effectué avec succés";
mysql_close();
?>

</html>


la requête elle s'applique sur toutes les lignes et non a chaque ligne a part, voila le résultat:

ref IMP56 désignation IMPRIMANTE prix(ht)2500 prix(ttc) 3000 rabais 0.05 prixfinal 4287.18 qte 12
ref DV10 désignation LECT DVD ROM prix(ht)1400 prix(ttc) 1680 rabais 0 prixfinal 4287.18 qte 20
ref PC4 désignation ORDINATEUR prix(ht)12000 prix(ttc) 14400 rabais 0.15 prixfinal 4287.18 qte 6
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Dis moi, c'est une blague ??

La réponse t'a été donnée noir sur blanc sur la page précédente.

Il ne reste qu'à la recopier.



Kohntark -
Messages postés
94
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
5 mai 2020

Non,ce n'est pas la réponse exacte.la requête elle s'applique toujours sur toute les lignes et non sur chaque ligne à part car chaque ligne se diffère par son prix final
Messages postés
3983
Date d'inscription
jeudi 14 juillet 2005
Statut
Membre
Dernière intervention
30 juin 2013
14
T'es à côté de la plaque, ceci fonctionne très bien :
<?
mysql_connect("localhost","root","");
mysql_select_db("info2");
$taux=1.1;
mysql_query("UPDATE mat SET prixfin=prixfin*$taux;");
echo "Mise à jour effectuée avec succés";
mysql_close();
?>

---
VB.NET is good ... VB6 is better
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
je rêve.
Avant de dire que ça ne fonctionne pas, on commence par tester ce qui a été mâché si gentiment par les intervenants et on tient compte des commentaires.

Profites en pour remplacer <? par <?php


Kohntark -
Messages postés
94
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
5 mai 2020

Merci pour votre aide
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
J'hallucine...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
3706
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
30
Félicitations menyarito !! Tu auras juste mis 13 heures à recopier, perf qui justifie pleinement que tu valides ta propre réponse.

Encore 13 heures et tu pourras tenir compte de mon :
Profites en pour remplacer <? par <?php


Kohntark -
Messages postés
94
Date d'inscription
dimanche 10 janvier 2010
Statut
Membre
Dernière intervention
5 mai 2020

je t'ai pas demandé de compter les heures pour moi,c'est plus mieux de chercher la réponse que de compter les heures,en plus
il n'y a pas de différence entre <? et <?php
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Si, il y a une différence : la SEULE syntaxe qui fonctionne dans TOUTES les configurations de php, c'est <?php
Pour fonctionner, <? nécessite que la directive short_open_tags soit à on, ce qui n'est pas toujours le cas.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)