Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1191 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme de requette php

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de requette php

n°1213347
zavatha
Posté le 03-10-2005 à 10:15:06  profilanswer
 

salut à tous,
 
j'(ai un piti probleme de requette php que je ne comprend pas  :cry:  
 
la requette est la suivante : (de mémoire)
$query = "update compte set solde='$new_solde' where (id='1')";
mysql_query($query);
 
id est l'identificateur du compte à modifier
 
le probleme : elle s'exécute tres bien sous sql dans easyphp quand je la tape manuellement, mais quand je l'éxécute dans un formulaire, tous les soldes de tous les comptes sont mis à jour (il y a deux comptes seulement pour le moment  :D )
c'est comme si la close where n'étaity pas prise en compte... quelle est mon erreur ?
 
merci de votre attention
 
++  :hello:

mood
Publicité
Posté le 03-10-2005 à 10:15:06  profilanswer
 

n°1213354
skeye
Posté le 03-10-2005 à 10:19:24  profilanswer
 

zavatha a écrit :

la requette est la suivante : (de mémoire)


 
Et dans le code, en vrai, c'est quoi?:o

n°1213383
zavatha
Posté le 03-10-2005 à 10:41:22  profilanswer
 

ok
voici toute la partie de mon script contenant la requette
je précise que l'id du compte que j'envoie à mon formulaire est la bonne (vérifié par un echo...)
 
<?php  
 
$time = time();
 
/***insertion des opérations en database***/
$query = "update compte set solde = '$new_solde', previsionnel = '$new_prev', last_time = '$time' where (id = '$id')";
echo "requette envoyée : $query</br>";
mysql_query($query) or die("erreur  : ".mysql_error($link));
 
/***affichage des insertions effectuées***/
echo "id du compte : $id</br>";
echo "Modification effectuée : </br></br>";
echo "<u>nouveau solde </u> : $new_solde</br><u>nouveau prévisionnel</u> : $new_prev</br>";
?>

n°1213385
skeye
Posté le 03-10-2005 à 10:42:13  profilanswer
 

et ton affichage de la requête donne quoi?

n°1213386
sielfried
Posté le 03-10-2005 à 10:42:22  profilanswer
 

Ca sort d'où $id ?

n°1213394
zavatha
Posté le 03-10-2005 à 10:50:46  profilanswer
 

$id est un parametre récupéré en $post (passé dans l'URL)
 
voici ce que donne l'echo de ma requette :  
 
update compte set solde = '115', previsionnel = '90', last_time = '1128333232' where (id = '1')
 
avec une valeur pour $id qui change bien en fonction du compte sélectionné


Message édité par zavatha le 03-10-2005 à 10:54:00
n°1213396
skeye
Posté le 03-10-2005 à 10:51:50  profilanswer
 

et dans ta table t'as bien qu'un seul id égal à 1?[:petrus75]

n°1213398
zavatha
Posté le 03-10-2005 à 10:54:33  profilanswer
 
n°1213400
skeye
Posté le 03-10-2005 à 10:57:36  profilanswer
 


alors c'est de la magie, à priori.[:petrus75]

n°1213412
zavatha
Posté le 03-10-2005 à 11:08:15  profilanswer
 

alors c'est de la magie, à priori.[:petrus75]
 
bin oui, pour moi en tout cas, c'est pour cela que je viens ici en dernier recours...
je vous tiens au courant si je trouve la solution et repasserais vois si qqu'un a une idée
 
merci en tout cas...
 
++

mood
Publicité
Posté le 03-10-2005 à 11:08:15  profilanswer
 

n°1213507
sielfried
Posté le 03-10-2005 à 12:57:08  profilanswer
 

echo mysql_affected_rows() te balance 2, donc ?

n°1213613
zavatha
Posté le 03-10-2005 à 14:30:20  profilanswer
 

sielfried a écrit :

echo mysql_affected_rows() te balance 2, donc ?


 
non, ca me renvoie 1, et pourtant il y a bien deux soldes modifies dans ma table, c'est à n'y rien comprendre  :cry:  
 
v me mettre à l'asp moa  
 :hello: ===>

n°1213618
skeye
Posté le 03-10-2005 à 14:32:45  profilanswer
 

zavatha a écrit :

non, ca me renvoie 1, et pourtant il y a bien deux soldes modifies dans ma table, c'est à n'y rien comprendre  :cry:  
 
v me mettre à l'asp moa  
 :hello: ===>


 
Tu vérifies comment qu'il y a quelquechose de modifié dans la table? :o

n°1213645
zavatha
Posté le 03-10-2005 à 14:47:09  profilanswer
 

skeye a écrit :

Tu vérifies comment qu'il y a quelquechose de modifié dans la table? :o


deux solutions :  
1-je consulte le solde de chaque compte avec mon client (en cours de developpement  :heink: )
2-je vais directement afficher le contenu de ma table avec phpmyadmin  :sweat:  
 
merci pour ton intérêt en tt cas  :D  
 

n°1213647
esox_ch
Posté le 03-10-2005 à 14:49:06  profilanswer
 

Si ca dit qu'il y a qu'1 row affectée c'est que c'est le cas ... T'es sur que ton script est pas appelé 2 fois ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1213677
zavatha
Posté le 03-10-2005 à 15:20:35  profilanswer
 

esox_ch a écrit :

Si ca dit qu'il y a qu'1 row affectée c'est que c'est le cas ... T'es sur que ton script est pas appelé 2 fois ?


bien vu je vais vérifier ca... je parcours mes scripts et je vous donne des news...

n°1213731
zavatha
Posté le 03-10-2005 à 16:11:36  profilanswer
 

ct pas ca... j'appelle mon script à partir d'un formulaire que voici :  
 
<i>
include("fonctions.php" );
 $link = connect_db();
 if (isset($_GET["compte"])) $id_compte = $_GET["compte"];
  else $id_compte = 0;
?>
 
<html><body bgcolor = "<?php echo $color1; ?>">
<table width = "100%" height = "100%" align = "center" bgcolor = "<?php echo $color1; ?>">
<tr><td valign = "center">
<table  align = "center" width = "600pixels">
<form action='action3.php?compte=<?php echo $id_compte;?>' method="post">
<tr align = "center" height = "20pixels">
<?php
  $query = "select solde, previsionnel from compte where(id = '$id_compte')";
  $result = mysql_query($query);
  $rows = mysql_fetch_array($result);
  mysql_free_result($result);
  $solde = $rows[0];
  $previsionnel = $rows[1];
     
  echo "<td bgcolor = $color2><font color = \"white\">";
  echo "<b>détail des soldes actuels...</b></br>prévisionnel : <b>$previsionnel</b></br>solde effectif : <b>$solde</b>";
  echo "</font></td></tr><tr align = \"center\">";
  echo "<td bgcolor = $color2><font color = \"white\">";
  echo "nouveau solde : <input type=\"text\" name=new_solde value = $solde> nouveau prévisionnel : <input type=\"text\" name=new_prev value = $previsionnel>";
  echo "</font></td></tr>";
?>
 <tr><td align = "center" bgcolor = <?php echo $color2; ?>><input type="submit" value="VALIDER"></td></tr>
</i>
 
donc à priori mon script est appelé une seule fois...
 
d'autres idées ? perso je sèche :(

n°1213773
omega2
Posté le 03-10-2005 à 16:38:40  profilanswer
 

Va faloir que tu sauvegardes dans un fichier ou une base de donnée l'ensemble des appel à ton script avec les valeurs de $_GET,$_POST ... (enfin jsute ce qu'est utilisé par ton script) ainsi que le texte des requettes SQL exécuté par le script.
 
Comme ça, tu pouras savoir si ton script est bein appellé juste une fois ou plusieurs et si le script n'exécute pas une requette parasite.
 
C'est sur qu'il y a une erreur quelque part, et vu que t'arrive pas à la voir en lisant simplement le code source, il faut que tu te donnes les moyens de tracer le script le plus finement possible.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme de requette php

 

Sujets relatifs
[java] problème de socketProblème pour centrer une image chargée dynamiquement
probleme d'affichage... tout se décalleProblème XML/XSL sous firefox
Algo avec Alg_exec ( Algo de base, mais qui pose probleme...)Probleme de requette
[PHP/Mysql] Probleme de requette - HelpProbleme de Syntaxe Requette Mysql
Probleme de requette sur mysql[ACCESS] Problème de requette
Plus de sujets relatifs à : probleme de requette php


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR