UPDATE ne se fait pas

Résolu
Bonjour,

j'ai fais plusieurs tests et recherches et je n'arrive pas à mettre le doigt sur le bobo.

J'ai ce code:
if (isset($_POST['modifier_sql']))
{
$id = $_POST['id2'];
$nom_upd = addslashes($_POST['nom2']);
$categorie_upd = addslashes($_POST['categorie2']);
$url_upd = addslashes($_POST['url2']);
mysql_query("UPDATE adresses SET nom='$nom_upd',
                                 categorie='$categorie_upd',url='$url_upd' WHERE id='$id'");
echo '<font color="red">Modification terminé !! </font><br /><br />';
}


Le problème est que l'update ne se fait pas. Pourtant si je fais un ajout ou que je veux supprimer tout est ok.

C'est surement pas grand chose mais malheureusement je ne trouve pas.

Merci d'avance pour votre aide.



--
Tout problème a une solution...il faut juste être persévérant.

9 réponses

  1. Bonjour

    Est-ce que ça affiche Modification terminé !! ?
    Peux-tu faire, juste avant le bout de code que tu nous montres, un print_r($_POST); pour voir ce qu'il y a réellement dans ce que tu reçois ?
    et aussi ajouter un or die(mysql_error()) à ta requête pour voir s'il y a une erreur
    mysql_query("UPDATE adresses SET nom='$nom_upd',  
                                     categorie='$categorie_upd',url='$url_upd' WHERE id='$id'") or die (mysql_error());
    0
    1. Contributeur
      Salut et merci de regarder mon cas ;)

      un print_r[$_POST];

      donne
      Array ( [id2] => [nom2] => ment [categorie2] => art [url2] => vision [modifier_sql] => Modifier )


      ça correspond à mes changements
      0
      1. C'est normal que id2 soit vide ?
        0
        1. Contributeur
          Pourtant il devrait passer

          voici le code de mon formulaire:
          if (isset($_GET['modifier']) AND $_GET['modifier'] == 'ok')
              {
              $id = $_GET['id'];
              $q = mysql_query("SELECT * FROM adresses WHERE id = $id");
              $r = mysql_fetch_array($q);
          
          ?>
          Modifier l'entrée avec l'id : <?php echo $id;?>
          <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
          <input type="hidden" name="id2" value="<? echo $id; ?>">
          <br />
          <table width="780" border="0" cellpadding="0">
          <tr>
              <td><strong>Nom du site</strong></td>
              <td><input type="text" name="nom2" size="98" value="<?php echo stripslashes($r['nom']);?>"></td>
            </tr>
            <tr>
            	<td><strong>Catégorie</strong></td>
              <td><input type="text" name="categorie2" size="98" value="<?php echo stripslashes($r['categorie']);?>"></td>
            </tr>
            <tr>
            	<td><strong>Adresse du site</strong></td>
              <td><input type="text" name="url2" size="98" value="<?php echo stripslashes($r['url']);?>"></td>
            </tr>
           </table>
          <input type="submit" name="modifier_sql" size="98"value="Modifier">
          </form>
          <a href="/admin/admin.php">Revenir à la page d'administration</a>
          0
          1. La question est maintenant déplacée (si j'ose dire ^^)
            $_GET['id'] est-il bien défini quand tu invoques ton formulaire ?
            0
            1. Contributeur
              oui il sort le bon id
              0
              1. Vu
                <? echo $id; ?> ça ne marche pas si ton PHP n'est pas configuré pour les balises courtes. il faut <?php
                0
                1. Contributeur
                  ahhh mais oui, je n'avais pas pensé à cela.

                  Merci beaucoup d'avoir prit le temps de m'aider. Avec ce que je voyais, mon code était bon sauf cette petite erreur.

                  Merci encore
                  0