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 :

pb de Update [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 34
    Par défaut pb de Update
    Bonsoir,

    Voila j' ai formulaire qui récolte les valeurs modifié d' un champ ensuite je stock tout en varaible puis si j' envoi le formulaire je reviend dans la meme page mais en affichant les valeurs correspondantes pour le débug uniquement et ensuite le message modifications apporté oui mais en faite le probleme est que quand j appui modifié il fait pas du tout ce que j ai demander ...

    Je pense le probleme vient de ma requete sql : $Update mais je suis pas sur et j arrive pas a avoir ou ça serait situé

    A l'heure actuel lorsque j' effectue la demande de modification il change juste la valeur de ma premiere colonne soit Modele par 0 et c' est tout quelque soit les champs que je met dans mon formulaire....

    Alors je fais appel a vous

    Voici ma page complete et aussi complexe :

    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
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    <html>
     
    	<head>
     
    	<title>Modification d' un enregistrement</title>
     
    	</head>
     
    <body>
     
    <h1 align="center">Modification d' un enregistrement</h1>
     
    </br>
    <?
    if (isset ($_POST['enregistrer'])) 
    	{
    $newmodele = $_POST['Modele2']; echo "$newmodele" ;
    $SerialNumber = $_POST['SerialNumber2']; echo "$SerialNumber" ;
    $newetat = $_POST['etat2']; echo "$newetat" ;
    $newdate = $_POST['date2']; echo "$newdate" ;
    $newbondelivraison = $_POST['bon_de_livraison2']; echo "$newbondelivraison" ;
    $newgrossiste = $_POST['Grossiste2']; echo "$newgrossiste" ;
    $newintegrateur = $_POST['Integrateur2']; echo "$newintegrateur" ;
    $newclientfinal = $_POST['Client_Final2']; echo "$newclientfinal" ;
    $newremarque = $_POST['Remarque2']; echo "$newremarque" ;
    $newmaintenance = $_POST['Maintenance2']; echo "$newmaintenance" ;
    $newdebutdemaintenance = $_POST['debut_de_maintenance2']; echo "$newdebutdemaintenance" ;
    $newfindemaintenance = $_POST['Fin_de_maintenance2']; echo "$newfindemaintenance" ;
    $newtypedemaintenance = $_POST['Type_de_maintenance2']; echo "$newtypedemaintenance" ;
    $newdebit = $_POST['debit2']; echo "$newdebit" ;
    $newcpr = $_POST['cpr2']; echo "$newcpr" ;
    $newsocle = $_POST['Socle2']; echo "$newsocle" ;
    $newsuitesoft = $_POST['SuiteSoft2']; echo "$newsuitesoft" ;
    $newannee = $_POST['Annee2']; echo "$newannee" ;
    $newmois = $_POST['Mois2']; echo "$newmois" ;
    $newsemaine = $_POST['Semaine2']; echo "$newsemaine" ;
     
    include("_connect.php"); // Connection a mon serveur + sélection de la BDD
     
    $Update="UPDATE `etat en cours` SET `Modèle` = '$newmodele' AND `état` = '$newetat' AND `date` = '$newdate' AND `bon de livraison` = '$newbondelivraison' AND `grossiste` = '$newgrossiste' AND `intégrateur` = '$newintegrateur' AND `client final` = '$newclientfinal' AND `remarque` = '$newremarque' AND  `Maintenance` = '$newmaintenance' AND `date de debut de maintenance` = '$newdebutdemaintenance' AND `date de fin de maintenance` = '$newfindemaintenance' AND `type de maintenance` = '$newtypedemaintenance' AND `debit` = '$newdebit' AND `licence CPR` = '$newcpr' AND `Socle` = '$newsocle' AND `SuiteSoft` = '$newsuitesoft' AND `Annee` = '$newannee' AND `Mois` = '$newmois' AND `Semaine` = '$newsemaine'  WHERE `Numéro de série` = '$SerialNumber' ";
     
    $result_update = mysql_query("$Update") or die(mysql_error()); // Requête SQL affiche et stoche toute la table etat en cours
     
    Echo "<b>Les modifications apportées au numéro de série suivant : '$SerialNumber' ont bien été apporter !</b>";
    	} 
     
    else {
     
    $edit = $_GET['modifier'] ; // recup la valeur de la ligne à modifier puis la transforme en variable $edit
     
    include("_connect.php"); // Connection a mon serveur + sélection de la BDD	
     
    // Creation et envoi de la requete
    $sql = "SELECT * FROM `etat en cours` WHERE `Numéro de série` = '$edit'";
     
    $result = mysql_query("$sql") or die(mysql_error()); // Requête SQL affiche et stoche toute la table etat en cours
     
    // Recuperation des resultats par colonne[x]
    while($row = mysql_fetch_row($result))
    {
    $Modele = $row[0];
    $SerialNumber = $row[1];
    $etat = $row[2];
    $date = $row[3];
     
    // Permet de convertir la Date au format français JJ / MM / YYYY
    list($year,$month, $day) = split('[/.-]', $date);
    $date = "$day/$month/$year";
     
    $bon_de_livraison = $row[4];
    $Grossiste = $row[5];
    $Integrateur = $row[6];
    $Client_Final = $row[7];
    $Remarque = $row[8];
    $Maintenance = $row[9];
    $Debut_de_maintenance = $row[10];
    $Fin_de_maintenance = $row[11];
    $Type_de_maintenance = $row[12];
    $debit = $row[13];
    $cpr = $row[14];
    $Socle = $row[15];
    $SuiteSoft = $row[16];
    $Annee = $row[17];
    $Mois = $row[18];
    $Semaine = $row[19];
    }
     
    ?>
     
     
    <form method="post" action="pagesdemodification.php">
    <table width="100%"><tr><td>
    <table align="left" width="100%" border="1">
      <tr>
    <td><b></br>Modèle :</b></td><td><input size="30" type="text" name="Modele2" value="<? echo $Modele ?>"></td>
      </tr>
      <tr>
    <td></br><b>Numéro de série :</b></td><td><input size="30" type="text" name="SerialNumber2" value="<? echo $SerialNumber ?>" ></td>
      </tr>
      <tr>
    <td></br><b>état : </b></td><td><input size="30" type="text" name="etat2" value="<? echo $etat ?>" ></td>
      </tr>
        <tr>
    <td></br><b>Date : </b></td><td><input size="30" type="text" name="date2" value="<? echo $date ?>" ></td>
      </tr>
        <tr>
    <td></br><b>Bon de livraison : </b></td><td><input size="30" type="text" name="bon_de_livraison2" value="<? echo $bon_de_livraison ?>" ></td>
      </tr>
        <tr>
    <td></br><b>Grossiste : </b></td><td><input size="30" type="text" name="Grossiste2" value="<? echo $Grossiste ?>" ></td>
      </tr>
        <tr>
    <td></br><b>Intégrateur : </b></td><td><input size="30" type="text" name="Integrateur2" value="<? echo $Integrateur ?>" ></td>
      </tr>
    <tr>
    <td></br><b>Client Final : </b></td><td><input size="30" type="text" name="Client_Final2" value="<? echo $Client_Final ?>" ></td>
      </tr>
      <tr>
    <td></br><b>Remarque : </b></td><td><input size="30" type="text" name="Remarque2" value="<? echo $Remarque ?>" ></td>
      </tr>
      <tr>
    <td></br><b>Maintenance : </b></td><td><input size="30" type="text" name="Maintenance2" value="<? echo $Maintenance ?>" ></td>
      </tr>
    </table>
    </td><td>
    <table align="right" width="100%" border="1">
      <tr>
    <td><b></br>Début De Maintenance : </b></td><td><input size="30" type="text" name="debut_de_maintenance2" value="<? echo $Debut_de_maintenance ?>" ></td>
      </tr>
      <tr>
    <td></br><b>Fin De Maintenance : </b></td><td><input size="30" type="text" name="Fin_de_maintenance2" value="<? echo $Fin_de_maintenance ?>" ></td>
      </tr>
        <tr>
    <td></br><b>Type De Maintenance : </b></td><td><input size="30" type="text" name="Type_de_maintenance2" value="<? echo $Type_de_maintenance ?>" ></td>
      </tr>
        <tr>
    <td></br><b>Débit : </b></td><td><input size="30" type="text" name="debit2" value="<? echo $debit ?>" ></td>
      </tr>
        <tr>
    <td></br><b>License CPR : </b></td><td><input size="30" type="text" name="cpr2" value="<? echo $cpr ?>" ></td>
      </tr>
          <tr>
    <td></br><b>Socle : </b></td><td><input size="30" type="text" name="Socle2" value="<? echo $Socle ?>" ></td>
      </tr>
          <tr>
    <td></br><b>SuiteSoft : </b></td><td><input size="30" type="text" name="SuiteSoft2" value="<? echo $SuiteSoft ?>" ></td>
      </tr>
          <tr>
    <td></br><b>Année : </b></td><td><input size="30" type="text" name="Annee2" value="<? echo $Annee ?>" ></td>
      </tr>
          <tr>
    <td></br><b>Mois : </b></td><td><input size="30" type="text" name="Mois2" value="<? echo $Mois ?>" ></td>
      </tr>
          <tr>
    <td></br><b>Semaine : </b></td><td><input size="30" type="text" name="Semaine2" value="<? echo $Semaine ?>" ></td>
      </tr>
    </table>
    </td></tr>
    </table>
    <br>
    <table align="center" width="100%" border="1">
      <tr valign="middle">
    <td height="50" align="center"><input type="submit" name="enregistrer" value="MODIFIER" onClick= "if (confirm('Voulez vous vraiment modifier <? echo "$edit" ; ?> ? ')){ return true; }else { return false; }} "><input name="reset" type="reset" value="EFFACER"></td>
    </tr>
    </table>
     
     
    </form> 
    <?
    }
    ?>
     
    <p>Pour retourner a Etats En cours <a href="Etats En Cours.php">cliquez ici</a> sinon pour démarrer une nouvelle recherche <a href="formulaires.php">cliquez ici</a></p>
    </html>
    P.S : Le code est surement très compliquer pour pas grand chose je pense mais je suis assez novice 2 semaine de pratique seulement donc je fais comme je peux deja je suis fier d' en arriver la


    Merci a ceux qui m' apporteront un petit coup de main !!!

  2. #2
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Alors je vais essayer de te montrer les choses a ameliorer:
    1) Eviter les espace dans les noms de table
    2) Eviter les accents dans le nom des champs et des tables
    3) Il faut faire attention a ne pas mettre directement les valeurs que tu recois de ton formulaire dans ta requete car il est possible d'utiliser une attaque de type "SQL Injection". Meme si MySQL t'aide un peu de ce cote la car il empeche l'execution de plusieurs requete dans une seule demande.
    4) prefere l'utilisation de mysql_fectch_assoc. Cela te simplifiera la vie sans reelle perte de performance.


    En ce qui concerne ton script, affiche ta requete est essaye la dans phpmyadmin par example.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    En complément des excellents conseils de stunti, je rajoute un point de syntaxe qui risque d'être également un problème. Les éléments dans un update sont séparés par des virgules (,) et non des and:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    update nom_table set champ1='xx', champ2='yy' where condition1
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Plus les erreurs sont grosses et moins on s'en apercoit...
    Merci Celira

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    De rien

    Tes conseils sont très utiles également. A mon avis, même avec la syntaxe juste au niveau des virgules, si les noms des champs contiennent des espaces, ça va planter quand même
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre émérite Avatar de stunti
    Inscrit en
    Mai 2006
    Messages
    520
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mai 2006
    Messages : 520
    Par défaut
    Non non, cela fonctionnera car il y a des anti-quote (`), mais dison que cela fait plus partit des "best practices".
    De meme pour les and dans l'update, cela va fonctionner car MySQL l'accepte mais ce n'est pas conforme a SQL92 ni SQL99

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête update à partir d'une autre table
    Par amiral thrawn dans le forum Langage SQL
    Réponses: 5
    Dernier message: 15/02/2024, 11h40
  2. Pb d'update dans une DataGrid
    Par bidson dans le forum XMLRAD
    Réponses: 11
    Dernier message: 27/05/2003, 14h11
  3. [dBase]il y a mieux que la commande sql UPDATE ?
    Par sana72 dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 12/12/2002, 11h59
  4. Réponses: 3
    Dernier message: 10/11/2002, 11h03
  5. update et virgule
    Par Delph dans le forum Bases de données
    Réponses: 8
    Dernier message: 27/08/2002, 14h40

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