Jump to content
Sign in to follow this  
Ka32

[réglé]Problème d'update mysql

Rate this topic

Recommended Posts

Bonjour,

Je souhaite mettre en place un outils pour un jeu mais en fait j'ai un problème :

Etape 1 : J'ajoute une demande via un formulaire ...

<form action="add.php" method="POST" enctype="multipart/form-data">
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="474"><table width="73%" border="1" align="center" cellpadding="0" cellspacing="1" bordercolor="#FFFFFF">
<tr>
<td bordercolor="#000000" bgcolor="#3399FF"><div align="center"><strong><font size="2" face="Arial, Helvetica, sans-serif">Ajouter
une demande</font></strong></div></td>
</tr>
<tr>

<td height="520" bordercolor="#000000"><table width="100%" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="37%" height="19"><p><font size="2" face="Arial, Helvetica, sans-serif">Pseudo: </font></p></td>
<td width="63%"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="titre" type="text">
<input type="hidden" name="id" value="1">
</font></td>
</tr>
<tr>
<td height="30"><font size="2" face="Arial, Helvetica, sans-serif">Quantité de métal offert</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">
<input name="qtmd" type="text">

</font></td>
</tr>
<tr>
<td height="30"><font size="2" face="Arial, Helvetica, sans-serif">Quantité de cristal offert</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">
<input name="qtcd" type="text">
</font></td>
</tr>
<tr>
<td height="30"><font size="2" face="Arial, Helvetica, sans-serif">Quantité de deutérium offert</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">
<input name="qtdd" type="text">
</font></td>
</tr>


<tr>
<td height="19"><font size="2" face="Arial, Helvetica, sans-serif">Planète de destination</font></td>
<td><font size="2" face="Arial, Helvetica, sans-serif">
<input name="planet" type="text">


</font></td>
</tr>
<tr>
<td height="25"> </td>
<td height="25"><input type="submit" name="Submit" value="Envoyer"></td>
</tr>

</table></td>
</tr>
</table></td>
</tr>
</table>
</form>

Etape 2 : j'enregistre les infos :


<?
include("config.php");

$db = mysql_connect($host,$login,$pass);
mysql_select_db($base,$db);
mysql_query("INSERT INTO article(id,titre,qtmd,qtcd,qtdd,planet)
VALUES('','$titre','$qtmd','$qtcd','$qtdd','$planet')");

mysql_close();

header("Location: index.php");
?>

Etape 3: je les affiches

 <?

include("config.php");
$identification= MYSQL_CONNECT($host,$login,$pass);
mysql_select_db($base);
$query = "SELECT * FROM article ";
$result = _AT_mysql_query($query,$identification);

while ($row = _AT_mysql_fetch_array($result))/* récupération des valeurs dans un tableau */
{
$id = $row["id"];
$titre = $row["titre"];
$qtmd = $row["qtmd"];
$qtcd = $row["qtcd"];
$qtdd = $row["qtdd"];
$planet = $row["planet"];
$receveur = $row["receveur"];


?>

<table width="100%" height="201" border="1" align="center" cellpadding="0" cellspacing="1" bordercolor="#FFFFFF">
<tr>
<td bordercolor="#000000" bgcolor="#0099FF"><div align="center"><font size="2" face="Arial, Helvetica, sans-serif"><strong><? echo"$id"; ?></strong></font></div></td>
</tr>
<tr>
<td height="178" bordercolor="#000000"><table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="20" colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Pseudo
:</strong> <? echo"$titre"; ?></font></td>
</tr>
<tr>
<td colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Quantité de métal offert
:</strong><? echo"$qtmd"; ?></font></td>
</tr>
<tr>
<td colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Quantité de cristal offert
:</strong> <? echo"$qtcd"; ?></font></td>
</tr>
<tr>
<td colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Quantité de deuterium offert
:<? echo"$qtdd"; ?></strong></font></td>
</tr>
<tr>

<td height="10" colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"></font></td>
</tr>
<tr>
<td colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"><strong>Planet donnatrice :
: </strong><? echo"$planet"; ?></font></td>
</tr>

<tr>
<td colspan="2"><font size="2" face="Arial, Helvetica, sans-serif"><strong>receveur:
:</font><font color="red"><? echo"$receveur"; ?> </strong></font></td>
</tr>

<a href="receveur.php">Modifier receveur</a>
</table></td>
</tr>
</table>
<?
}

?>

Etape 4: je veux modifier via un autre formulaire :

 
<?

include("config.php");
$identification= MYSQL_CONNECT($host,$login,$pass);
mysql_select_db($base);
$query = "SELECT * FROM article ";
$result = _AT_mysql_query($query,$identification);

$id = $_GET['id'];

?>
<form action="add2.php" method="POST" enctype="multipart/form-data">
<table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="474"><table width="73%" border="1" align="center" cellpadding="0" cellspacing="1" bordercolor="#FFFFFF">
<tr>
<td bordercolor="#000000" bgcolor="#3399FF"><div align="center"><strong><font size="2" face="Arial, Helvetica, sans-serif">Ajouter
une demande</font></strong></div></td>
</tr>
<tr>
<td height="520" bordercolor="#000000"><table width="100%" border="0" align="center" cellpadding="3" cellspacing="0">
<tr>
<td width="37%" height="19"><p><font size="2" face="Arial, Helvetica, sans-serif">Pseudo: </font></p></td>
<td width="63%"><font size="2" face="Arial, Helvetica, sans-serif">
<input name="receveur" type="text">
</font></td>
</tr>

<tr>
<td height="25"> </td>
<td height="25"><input type="submit" name="Submit" value="Envoyer"></td>
</tr>

</table></td>
</tr>
</table></td>
</tr>
</table>
</form>

Etape 5 : j'essaye de les enregistrer sur l'ID en question :

<?
include("config.php");

  $db = mysql_connect($host,$login,$pass);
  mysql_select_db($base,$db);
 
  mysql_query("UPDATE article SET receveur = '$receveur' WHERE id='$id' ");
 
  mysql_close();  
 
  header("Location: index.php");
   ?>

Mais rien ne se passe je ne comprend pas...

Certes je suis pas tres fort mais quand meme je trouve pas la solution...

Edited by Ka32

Share this post


Link to post
Share on other sites

Hello,

C'est parce que tu n'as pas inclus l'ID dans le form d'edition de receveur, donc forcement il ne le recoit pas. Inclus le dans un champ caché du formulaire, je pense que ca devrait regler le problème.

Rien à voir, mais tu devrais inclure tes connections à la base dans ton config.php, c'est plus simple plutot que de le repeter à chaque fois :)

kjb

Share this post


Link to post
Share on other sites

cela ne change rien...

oui je vais inclure cela dans config.php

En fait il faut qu'il remplisse le champs vide apres avoir entrer le pseudo dans receveur.php mais cela ne marche pas

Share this post


Link to post
Share on other sites

Visiblement tu ne transmet pas ton identifiant (que tu stockes dans la variable $id dans ton script 4), à ton script 5

Si ça ne représente pas un souci de sécurité pour toi , tu peux tout simplement utiliser :

<input type="hidden" name="id" value="<?= $id;?>">

Edit : Je suis incroyablement long pour écrire un post :P. Ca change rien, soit, mais il faut peut-être mieux le faire quand même ;)

Edited by dièse

Share this post


Link to post
Share on other sites

cela ne marche toujours pas :

 <?
include("config.php");
$identification= MYSQL_CONNECT($host,$login,$pass);
mysql_select_db($base);
$query = "SELECT * FROM article ";
$result = _AT_mysql_query($query,$identification);

$id = $_GET['id'];

?>
<form action="add2.php" method="POST" enctype="multipart/form-data">
 <table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
   <tr>
     <td height="474"><table width="73%" border="1" align="center" cellpadding="0" cellspacing="1" bordercolor="#FFFFFF">
         <tr>
           <td bordercolor="#000000" bgcolor="#3399FF"><div align="center"><strong><font size="2" face="Arial, Helvetica, sans-serif">Ajouter
               une demande</font></strong></div></td>
         </tr>
         <tr>
           <td height="520" bordercolor="#000000"><table width="100%" border="0" align="center" cellpadding="3" cellspacing="0">
               <tr>
                 <td width="37%" height="19"><p><font size="2" face="Arial, Helvetica, sans-serif">Pseudo: </font></p></td>
                 <td width="63%"><font size="2" face="Arial, Helvetica, sans-serif">
                   <input name="receveur" type="text">
    <input type="hidden" name="id" value="<?= $id;?>">
                   </font></td>
               </tr>
       
   <tr>
                 <td height="25"> </td>
                 <td height="25"><input type="submit" name="Submit" value="Envoyer"></td>
               </tr>
               
             </table></td>
         </tr>
       </table></td>
   </tr>
 </table>
</form>

Share this post


Link to post
Share on other sites

Salut,

Dans ton script 5, il faut rajouter dans ce cas la ligne suivante :

$id = $_POST[id];

Et là ça va marcher ;)

Share this post


Link to post
Share on other sites

Bonjour... Il y a un bouton éditer pour ne pas écrire plusieurs posts à la suite...

Bon, on va procéder dans l'ordre : l'étape pour insérer les infos dans la BDD marche sans problème ? Tout est bien affiché dans l'étape 3 ?

Bon, une méthode qu'apparemment tu n'appliques pas : sépare ta requète de son exécution.

Dans l'étape 5, à la place de :

mysql_query("UPDATE article SET receveur = '$receveur' WHERE id='$id' ");

mets :

$requete = "UPDATE article SET receveur = '$receveur' WHERE id='$id' ";
echo $requete;

Tu pouras déjà voir à quel niveau se situe le problème ! Il se situe sûrement du côté de l'id, m'enfin on ne sait jamais...

Dans l'étape 4, quelle est l'url de ta page ? Du type modifier.php?id=xx ?

Voilà répond déjà à tout ça, on pourra mieux voir après...

(HS : tu nous fais un remake de ogame ? ;))

Share this post


Link to post
Share on other sites

Ecrire dans la BDD = OK

<?
include("config.php");

  $db = mysql_connect($host,$login,$pass);
  mysql_select_db($base,$db);
  $id = $_POST[id];
  mysql_query($requete);
  $requete = "UPDATE article SET receveur = '$receveur' WHERE id='$id' ";
echo $requete;
 
 
  mysql_close();  
 
  header("Location: index.php");
   ?>

Voila ca c'est fait...

L'url de ma page ne comporte pas ce genre de trucs...

Cela ne change toujours rien... il n'ecrit pas dans la base de donnée le receveur...

HS: ui je fait un outil pour ogame... ;)

Share this post


Link to post
Share on other sites
L'url de ma page ne comporte pas ce genre de trucs...

Je vois pas alors comment tu fais passer ton id... Tu mets

$id = $_GET['id'];

, donc c'est que tu vas chercher l'argument id dans ton URL non ? Si elle n'est pas du type ?id=xx, ta variable $id sera vide...

Donc c'est pas là qu'il y a un problème tout simplement ?

Cela ne change toujours rien... il n'ecrit pas dans la base de donnée le receveur...

Normal... Ce que je t'ai donné, c'est pour écrire la requète à l'écran : il faut donc lancer ton programmer et voir la requète qu'il écrit à l'écran... A partir de ça, tu peux trouver ton erreur ;)

Share this post


Link to post
Share on other sites

mais l'ID c'est le numero qu'il definie pour une etiquette automatiquement...

ce que je desire c'est que lorsque on appuis sur le bouton modifier il modifie le numero de la fiche en question...

Share this post


Link to post
Share on other sites

Je ne comprend pas tout ce que tu me dis, mais ce que je sais c'est que si ton url n'a pas d'id comme argument, ton $id=$_GET[id] ne sert à rien, et n'aura pas de valeur... Donc ta requète SQL ne pourra pas marcher normalement !

Montre à quoi ressemble ton URL qui contient le formulaire de l'étape 4.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...