[PHP-Mysql]UPDATE ne met pas à jour !

Résolu
Bonjour,
Je dois faire un script de news, et celui qui est censer les modifier, ne modifie rien du tout !
Voici le code du formulaire :
$donnees = mysql_query('SELECT * FROM news WHERE id=\'' . $id . '\'');
$news = mysql_fetch_array($donnees); ?>

<form method="POST" action="modifnews.php?page=Modification reussi">
<label>Date : <input type="text" name="date" size="40" value="<?php print $news['date']; ?>"/><em>(De la forme AAAA-MM-JJ)</em></label><br/>
<label>Description du rendez-vous : <br/>
<textarea rows="6" cols="75" name="news">
<?php echo $news['news']; ?>
</textarea></label><br/>
<label>auteur : <input type="text" name="nom" size="20" value="<?php echo $news['nom']; ?>"/></label><br/>
<input type="hidden" name="id" value="<?php echo $id ;?>" />
<input type="submit" value="Modifier !">
</form>


et celui qui est censer mettre à jour

if(isset($_POST['id']) AND $_POST['id']!=NULL  AND isset($_POST['date']) AND $_POST['date']!=NULL AND isset($_POST['nom']) AND $_POST['nom']!=NULL AND isset($_POST['news']) AND $_POST['news']!=NULL )
{
$id=$_POST['id'];

$date=$_POST['date'];
$date=htmlentities($date);

$news=$_POST['news'];
$news = stripslashes($news);
$news=htmlentities($news);
$news=nl2br($news);

$nom=$_POST['nom'];
$nom = stripslashes($nom);
$nom=htmlentities($nom);
$nom= nl2br($nom);
  
	mysql_connect("***","**","****");
	mysql_select_db("******");
	mysql_query("UPDATE news SET date=$date,news=$news, nom=$nom WHERE id=$id");
	mysql_close();


le UPDATE ne met rien à jour pourquoi ?
Configuration: Linux
Epiphany 2.14

10 réponses

  1. Bonjour,
    C'est bon ce matin je me suis réveillé et après quelques pas, j'ai eu la réponse comme un éclair !

    Jocvendee, C'est pas la table mais la base.
    La table c'est news, donc faut remplacer jocvendee par news

    Quel con !
    1. bonsoir si tu utilise phpmyadmin (PMA) tu peut gerer les autoristaions depuis la page d''accueil
      je t'ai fait un screen

      http://milsodor.no-ip.org/ccm/pma/pma.JPG

      Avec free je sais pas comment ça se passe ,j'heberge moi meme mon site comme ça je suis tranquille.
      sinon tu peut faire un bout de code un peu comme ça pour voir

      $sql=("DELETE FROM jocvendee WHERE id='$id' ");
      mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

      comme ça tu verra exactement ce qui est pris dans ta requete.

      Car a priori y''a pas de raisons que ca marche pas.(sinon je ne vois qu'une question de privileges
      regarde par ici
      http://www.journaldunet.com/...

      Pense à placer des echos dans ton code pour voir ou ça plante,une fois cerné le probleme tu les vires.

      @+
      1. bon, j'ai modifié, j'ai meme essayé un script avec écrit en clair les requete SQL sans aucune variable $id
        et là, sa ne fonctionne pas la news persiste !

        Je pense faire une PDELETE FROM comme mysql_pconnect :)
        ( https://www.php.net/function.mysql-pconnect )

        Comment fait-ton pour passer un utilisateur en grant privilege sous free ?

        la variable, $secteur je ne l'utilisais pas encore là !
        le script est tronqué à l'essentiel.
        1. bonsoir, verifie deja si l'utilisateur qui est loggé (je suppose que c'est toi) à les droits pour supprimer (grant all privileges)

          utilise plutot des doubles quotes " à la place des simples '
          comme yorundr l'a ecris
          mysql_query("DELETE FROM jocvendee WHERE id='$id' ");

          la seconde c'est pareil mais plus "académiques" en efet phpn'interprete pas de la meme maniere les valeurs contenus dans des "" ou dans des ''
          personellement à la maison j'utilise la 1ere mais au boulot ca arrive que j'emploie la 2eme (j'aime moins) ,mais le resultat est le meme dans la majorité des cas.
          Sauf si tu doit concatener plusieurs variables ,dans ce cas utilise la 2eme;
          souvient toi d'une chose comme tes requete par "

          une question ? $secteur=$_POST['secteur']; ça correspond à quoi ? ca a un lien avec ta requete?

          bon courage
          @+
          1. celle ci elle est simple, contrairement a tout a l'heure tu a mit des simple cote ce qui fait que ca ne peut pas fonctionner
            Il faut faire :
            mysql_query("DELETE FROM jocvendee WHERE id='$id' ");
            ou encore mieu
            mysql_query("DELETE FROM jocvendee WHERE id='".$id."';");
            1. Je Peux te remettre à l'épreuve.
              Cette fois-ci c'est DELETE FROM qui ne supprimme rien.

              Une idée pour sa ?

              elseif(isset($_POST['suppression']) AND isset($_POST['id']) AND $_POST['suppression']=="oui")
              {
              $id=$_POST['id'];
              $secteur=$_POST['secteur'];
              	mysql_query('DELETE FROM jocvendee WHERE id='$id' ');
              }
              1. de rien ,
                je sais ce que c'est .. ;-)
                tu cherche des heures des soluces compliquées alors que c'est tout bête
                c'est des choses qui arrive à tout le monde
                @+
                1. Woaw !
                  j'étais bloqué dessus depuis 3-4 heure, un truc si con, y'a de quoi être dégouté, en tout cas bravo pour la réponse et merci !

                  Je vais devoir rebouquiné un peu :)

                  Tcho
                  1. bonsoir je te réponds rapidement
                    essaye comme ça ;

                    mysql_query("UPDATE news SET date='$date' ,news='$news' , nom='$nom' WHERE id='$id' ");
                    


                    et le noms de tes champs dans ta BD sont exactement ecris comme tu l'a écris (date news sera différent de Date News)