[PHP] Update raté

Bonjour,
J'ai fait ce script PHP qui refuse de fonctionner...

Est-ce quelqu'un pourrait pointer mon erreur du doigt ?
<html><head><title>MàJ</title></head>
<body>
<?php
$connexion = mysql_connect("localhost","root","");
if ($connexion)
{
mysql_select_db("bormes",$connexion);
$requete="UPDATE HEBERGEMENT SET
NOMEHEBE='".$_POST['nome']."',
TYPEHEBE='".$_POST['type']."',
QUALHEBE='".$_POST['qual']."',
DESCHEBE='".$_POST['desc']."',
SITUHEBE='".$_POST['situ']."',
OUVEHEBE='".$_POST['ouve']."',
CAPAHEBE='".$_POST['capa']."',
DISMHEBE='".$_POST['dism']."',
PRESHEBE='".$_POST['pres']."',
LANGHEBE='".$_POST['lang']."',
TCHAHEBE='".$_POST['tcha']."',
TPEDHEBE='".$_POST['tped']."',
PHOTHEBE='".$_POST['nome']."',
TELEHEBE='".$_POST['tele']."',
FAXEHEBE='".$_POST['faxe']."',
ADREHEBE='".$_POST['mail']."',
MAILHEBE='".$_POST['adre']."',
SITEHEBE='".$_POST['site']."';";
$ok= mysql_query($requete,$connexion);
echo $ok;
if ($ok)
{
echo "L' hebergement a été correctement modifié";
}
else
{
echo "Attention, la modification de l'hebergement a échoué !!!";
}
}
else
{
echo "problème à la connexion <br />";
}
mysql_close($connexion);
?>
<br/>
</body><html>


Merci d'avance

5 réponses

  1. Moi je fais ainsi:

    $requete="UPDATE 'HEBERGEMENT' SET
    'NOMEHEBE'='".$_POST['nome']."',
    'TYPEHEBE'='".$_POST['type']."',
    'QUALHEBE'='".$_POST['qual']."', etc...

    Les apostrophes des mot en gras ci dessus sont des alt gr + 7
    1. Si l'on commence à mettre des notes sur les idées que l'on soumet, il n'y a plus qu'à mettre -1 à tous, compte tenu que qu'aucun d'entre vous n'a trouver la bonne solution !!!
    2. D'autant plus que les apostrophes alt Gr + 7 SONT RECOMMANDE:

      UPDATE 'llcorp'.'bank' SET 'num' = '5' WHERE CONCAT( 'bank'.'num' ) =4 LIMIT 1 ;

      Voici un update classic exécuté par mysql^^ avec les apostrophe autour des mot en gras entouré par les altGr+7 !!!

      Alors essayer avant de notez...
    3. Je confirme. Même si je ne les utilise pas par flemme, ça ne peut pas faire de mal de les utiliser...
  2. Quel est ton message d'erreur?
    1. Il m'affiche mon message d'erreur "Attention, la modification de l'hébergement a échoué"
    2. C'est donc sûrement ta requête qui est fausse fais echo $requete; à la place de echo $ok;

      Puis exécute ce qui s'affiche à l'écran sous phpmyadmin pour voir si elle passe ou non
  3. Bonjour,

    Mets avant NOMEHEBE='".$_POST['nome']."' et après SITEHEBE='".$_POST['site']."' des parenthèses (c'est typique au SQL) et enlève le ; à la fin de la requête et essaye pour voir
    1. Ca marche pas...
  4. ReSalut,

    http://sql.1keydata.com/fr/sql-update.php

    Pour ne pas faire d'erreurs de syntaxe.

    Pour ton problème, mets :

    UPDATE "nom de table"
    SET colonne 1 = [valeur 1], colonne 2 = [valeur 2]
    WHERE {condition}

    $requete="UPDATE 'HEBERGEMENT' SET
    NOMEHEBE='".$_POST['nome']."',
    TYPEHEBE='".$_POST['type']."',
    QUALHEBE='".$_POST['qual']."',
    DESCHEBE='".$_POST['desc']."',
    SITUHEBE='".$_POST['situ']."',
    OUVEHEBE='".$_POST['ouve']."',
    CAPAHEBE='".$_POST['capa']."',
    DISMHEBE='".$_POST['dism']."',
    PRESHEBE='".$_POST['pres']."',
    LANGHEBE='".$_POST['lang']."',
    TCHAHEBE='".$_POST['tcha']."',
    TPEDHEBE='".$_POST['tped']."',
    PHOTHEBE='".$_POST['nome']."',
    TELEHEBE='".$_POST['tele']."',
    FAXEHEBE='".$_POST['faxe']."',
    ADREHEBE='".$_POST['mail']."',
    MAILHEBE='".$_POST['adre']."',
    SITEHEBE='".$_POST['site']."'
    WHERE NOMEHEBE='".$_POST['nome']."'";
    1. J'en suis la et ca marche toujours pas...

      <html><head><title>MàJ</title></head>
      <body>
      <?php
      $connexion = mysql_connect("localhost","root","");
      if ($connexion)
      {
      mysql_select_db("bormes",$connexion);
      $requete="UPDATE 'HEBERGEMENT' SET
      NOMEHEBE='".$_POST['nome']."',
      TYPEHEBE='".$_POST['type']."',
      QUALHEBE='".$_POST['qual']."',
      DESCHEBE='".$_POST['desc']."',
      SITUHEBE='".$_POST['situ']."',
      OUVEHEBE='".$_POST['ouve']."',
      CAPAHEBE='".$_POST['capa']."',
      DISMHEBE='".$_POST['dism']."',
      PRESHEBE='".$_POST['pres']."',
      LANGHEBE='".$_POST['lang']."',
      TCHAHEBE='".$_POST['tcha']."',
      TPEDHEBE='".$_POST['tped']."',
      PHOTHEBE='".$_POST['nome']."',
      TELEHEBE='".$_POST['tele']."',
      FAXEHEBE='".$_POST['faxe']."',
      ADREHEBE='".$_POST['mail']."',
      MAILHEBE='".$_POST['adre']."',
      SITEHEBE='".$_POST['site']."'
      WHERE NOMEHEBE='".$_POST['nome']."'";
      $ok= mysql_query($requete,$connexion);
      echo $ok;
      if ($ok)
      {
      echo "L'hebergement a été correctement modifié";
      }
      else
      {
      echo "Attention, la modification de l'hebergement a échoué !!!";
      }
      }
      else
      {
      echo "problème à la connexion <br />";
      }
      mysql_close($connexion);
      ?>
      <br/>
      </body><html>
    2. Ah oui, juste comme ça... est-tu sur d'avoir qqch dans tes "nome","type"... sinon, peut être que par précotion tu peux remplacer
      $_POST['nome']
      par
      (isset($_POST['nome'])?$_POST['nome']:"")

      Mais ça n'est probablement pas la source d'erreur.

      En revanche, breub62 a sans doute la meilleur idée à savoir fait un echo $requete et copie la réponse obtenu dans phpmyadmin...
    3. J'ai viens de cop-col ma requete dans phpmyadmin et il me donne cete erreur la :

      #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''HEBERGEMENT' SET NOMEHEBE='HOTEL DE LA PLAGE', TYPEHEBE='Hotel ', QUALHEBE='2 Ã' at line 1
    4. Et en bidouillant sur phpMyAdmin tu arrive à la requête qui répond à tes besoins?
    5. Lorsque je vire la ligne qui met a jour le champ DESCHEBE, ça marche dans phpmyadmin...

      Je ne comprend pas pourquoi...