Php my admin

Résolu
menyarito Messages postés 94 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 mai 2020 - 10 janv. 2010 à 01:14
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 - 11 janv. 2010 à 19:41
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

menyarito Messages postés 94 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 mai 2020
11 janv. 2010 à 00:08
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>
3
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
10 janv. 2010 à 10:01
<?
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
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
10 janv. 2010 à 10:02
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
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 janv. 2010 à 11:01
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à ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
10 janv. 2010 à 11:13
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
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 janv. 2010 à 12:05
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à ;)
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
10 janv. 2010 à 12:52
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
0
menyarito Messages postés 94 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 mai 2020
10 janv. 2010 à 13:25
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
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
10 janv. 2010 à 13:28
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à ;)
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 janv. 2010 à 14:45
@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 -
0
menyarito Messages postés 94 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 mai 2020
10 janv. 2010 à 15:25
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
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 janv. 2010 à 20:02
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 -
0
menyarito Messages postés 94 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 mai 2020
10 janv. 2010 à 20:15
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
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
10 janv. 2010 à 20:22
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
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
10 janv. 2010 à 20:39
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 -
0
menyarito Messages postés 94 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 mai 2020
11 janv. 2010 à 00:10
Merci pour votre aide
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
11 janv. 2010 à 00:29
J'hallucine...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
11 janv. 2010 à 00:39
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 -
0
menyarito Messages postés 94 Date d'inscription dimanche 10 janvier 2010 Statut Membre Dernière intervention 5 mai 2020
11 janv. 2010 à 02:05
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
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
11 janv. 2010 à 02:10
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à ;)
0
Rejoignez-nous