Aller au contenu

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


Ka32

Sujets conseillés

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...

Modifié par Ka32
Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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

Lien vers le commentaire
Partager sur d’autres 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 ;)

Modifié par dièse
Lien vers le commentaire
Partager sur d’autres 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>

Lien vers le commentaire
Partager sur d’autres 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 ? ;))

Lien vers le commentaire
Partager sur d’autres 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... ;)

Lien vers le commentaire
Partager sur d’autres 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 ;)

Lien vers le commentaire
Partager sur d’autres 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...

Lien vers le commentaire
Partager sur d’autres 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.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...