IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur de mise à jour table sous mySql


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Erreur de mise à jour table sous mySql
    Bonjour,
    Je suis nouveau dans l'utilisation de php et votre aide me serait très précieuse!
    En fait, je ne parviens pas à mettre à jour ma table mrconso à partir des valeurs qui des variables récuperées dans une requete sql:$Voici le message renvoyé:
    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column 'Y43' in 'where clause'' in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\pmsi_adicap\test_cim10.php:34 Stack trace: #0 C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\pmsi_adicap\test_cim10.php(34): PDO->query('UPDATE `tab_mrc...') #1 {main} thrown in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC9\data\localweb\projects\pmsi_adicap\test_cim10.php on line 34
    Voici une partie du code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    //....(connexion)
    $sql_cim10 = "SELECT cim10 FROM `tab_mrconso_1`";
    $res_sql_cim10 = $bdd->query($sql_cim10);
    while ($ligne=$res_sql_cim10->fetch()){
         $cim10 = $ligne["cim10"];
    	$nbrecar = strlen($cim10);
    	if ($nbrecar == 3){
    		$cim=$cim10;
                    $sql_maj = "UPDATE `tab_mrconso_1bis` SET `cim10_p1`='".$cim."' where cim10= $cim10";
    		$res_sql_maj = $bdd->query($sql_maj);
            }
    elseif($nbrecar == 5){
                    $temp1=substr("$cim10",0,3);
    		$temp2=substr("$cim10",-1,1);
    		$cim10_pf = $temp1.$temp2;
                    $sql_maj = "UPDATE `tab_mrconso_1bis` SET `cim10_p1`='".$cim10_pf."' where cim10= $cim10";
    		$res_sql_maj = $bdd->query($sql_maj);
            }
    else{
                    $cim10_p1=substr("$cim10",0,3);
                    $temp1=substr("$cim10",-5,3);
    		$temp2=substr("$cim10",-1,1);
    		$cim10_p2 = $temp1.$temp2;
    		$sql_maj = "UPDATE `tab_mrconso_1bis` SET `cim10_p1`=".$cim10_p1." AND`cim10_p2`='".$cim10_p2."' where cim10= $cim10";
    		$res_sql_maj = $bdd->query($sql_maj)	or die('Erreur SQL !<br>'.$sql_maj.'  message error :'.mysql_error());
    }

    Pourriez vous me venir en aide s'il vous plait afin de pouvoir mieux "quoter" mes variables dans la requête ?(les autres instructions fonctionnent bien puisque je parviens à les afficher à l'écran à l'aide du "echo" .
    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si cim10 est une chaine, il faut des apostrophes sur sa valeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE cim10 = '$cim10'";
    Mais tu utilises mal PDO :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    $sql_maj_simple = $bdd->prepare('UPDATE `tab_mrconso_1bis` SET `cim10_p1`= :cim10_p1 WHERE cim10 = :cim10');
    $sql_maj_double = $bdd->prepare('UPDATE `tab_mrconso_1bis` SET `cim10_p1`= :cim10_p1,  `cim10_p2`= :cim10_p2 WHERE cim10 = :cim10');
     
    while ($ligne=$res_sql_cim10->fetch()){
            $cim10 = $ligne['cim10'];
    	$nbrecar = strlen($cim10);
    	if ($nbrecar == 3){
                    $cim10_p1 = $cim10;
                    $sql_maj_simple->execute(array(':cim10'=>$cim10, ':cim10_p1'=>$cim10_p1));
            }
            elseif($nbrecar == 5){
                    $cim10_p1 = substr($cim10,0,3) . substr($cim10,-1,1);
                    $sql_maj_simple->execute(array(':cim10'=>$cim10, ':cim10_p1'=>$cim10_p1));
            }
            else{
                    $cim10_p1=substr($cim10,0,3);
    		$cim10_p2 = substr($cim10,-5,3).substr($cim10,-1,1);
    		$sql_maj_double->execute(array(':cim10'=>$cim10, ':cim10_p1'=>$cim10_p1, ':cim10_P2'=>$cim10_p2));
            }
    }

Discussions similaires

  1. Problème mise à jour table sous Acces
    Par colorid dans le forum Bases de données
    Réponses: 7
    Dernier message: 16/03/2012, 17h12
  2. Mise à jour table: sous requête UPDATE
    Par aiss57 dans le forum Requêtes
    Réponses: 7
    Dernier message: 27/04/2009, 15h18
  3. Erreur de mise à jour de table liée
    Par tom_ibonia dans le forum Access
    Réponses: 1
    Dernier message: 19/10/2006, 10h52
  4. Mise à jour table à partir sous-formulaire
    Par Daniel MOREAU dans le forum Access
    Réponses: 6
    Dernier message: 19/05/2006, 09h26
  5. Mise à jour table liée à à sous formulaire
    Par Michel DELAVAL dans le forum Access
    Réponses: 1
    Dernier message: 15/04/2006, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo