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 :

Requete update qui deconne [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 59
    Points : 31
    Points
    31
    Par défaut Requete update qui deconne
    Bonjour @ tous,

    voici une requete update qui fonctionne

    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
    <?php
        require 'database.php';
        $id = 0;
     
        if ( !empty($_GET['id'])) {
            $id = $_REQUEST['id'];
        }
     
        if ( !empty($_POST)) {
            // keep track post values
            $id = $_POST['id'];
     
            // delete data
            $pdo = Database::connect();
            $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $sql = "UPDATE TblPeople SET Flag=1 WHERE IdPeople= ?";
            $q = $pdo->prepare($sql);
            $q->execute(array($id));
            Database::disconnect();
            header("Location: index.php");
     
        }
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr-FR">
    <head profile="http://gmpg.org/xfn/11">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link   href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/bootstrap.min.js"></script>
    </head>
     
    <body>
        <div class="container">
     
                    <div class="span10 offset1">
                        <div class="row">
                            <h3>Supprimer un contact</h3>
                        </div>
     
                        <form class="form-horizontal" action="delete.php" method="post">
                          <input type="hidden" name="id" value="<?php echo $id;?>"/>
                          <p class="alert alert-error">&Ecirc;tes vous s&ucirc;r ?</p>
                          <div class="form-actions">
                              <button type="submit" class="btn btn-danger">Oui</button>
                              <a class="btn" href="index.php">Non</a>
                            </div>
                        </form>
                    </div>
     
        </div> <!-- /container -->
      </body>
    </html>
    voici une requete update qui plante et je ne vois pas pourquoi

    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
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    <?php
     
    require 'database.php';
    $id=null;
     
     
    if (!empty($_GET['id'])){
    	$id = $_GET['id'];
    	//echo $id;
    }
     
    if ( null == $id ) {
            header("Location: index.php");
    }
     
    if  (!empty($_POST)){
    		// keep track validation errors
            $TitleError = null;
            $FirstNameError = null;
            $LastNameError = null;
    		$AddressError = null;
    		$NumberError = null;
     
            // keep track post values
    		$Sex = $_POST['Sex'];
    		$Title = $_POST['Title'];
    		$FirstName = $_POST['FirstName'];
    		$LastName = $_POST['LastName'];
    		$Address = $_POST['Address'];
    		$Number = $_POST['Number'];
    		$Box = $_POST['Box'];
    		$Color = $_POST['Color'];
    		$Cities = $_POST['Cities'];
    		$Flag = 0;
     
            // validate input
            $valid = true;
            if (empty($Title)) {
                $TitleError = '&nbsp;';
                $valid = false;
            }
     
            /*if (empty($email)) {
                $emailError = 'Please enter Email Address';
                $valid = false;
            } else if ( !filter_var($email,FILTER_VALIDATE_EMAIL) ) {
                $emailError = 'Please enter a valid Email Address';
                $valid = false;
            }*/
     
            if (empty($FirstName)) {
                $FirstNameError = '&nbsp;';
                $valid = false;
            }
     
    		if (empty($LastName)) {
                $LastNameError = '&nbsp;';
                $valid = false;
            }
     
    		if (empty($Address)) {
                $AddressError = '&nbsp;';
                $valid = false;
            }
     
    		if (empty($Number)) {
                $NumberError = '&nbsp;';
                $valid = false;
            }
     
    		if ($valid) {
                $pdo = Database::connect();
                $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                //$sql = "UPDATE TblPeople set Sex = '$Sex', Title = '$Title', FirstName = '$FirstName', LastName = '$LastName', Address = '$Address', Number = '$Number', Box = '$Box', Color = '$Color', Flag = '$Flag', FkCities = '$Cities' WHERE id = $id";;
    			$sql = "UPDATE TblPeople set Sex = ?, Title = ?, FirstName = ?, LastName = ?, Address = ?, Number = ?, Box = ?, Color = ?, Flag = ?, FkCities = ? WHERE id = ?";
    			$q = $pdo->prepare($sql);
                $q->execute(array($Sex,$Title,$FirstName,$LastName,$Address,$Number,$Box,$Color,$Flag,$Cities,$id));
    			//$q->execute(array($name,$email,$mobile,$id));
                Database::disconnect();
                header("Location: index.php");
            }
     
    }else {
     
    $pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SELECT * FROM TblPeople WHERE IdPeople = ?";
    $q = $pdo->prepare($sql);
    $q->execute(array($id));
    $data = $q->fetch(PDO::FETCH_ASSOC);
     
    $Sex = $data['Sex'];
    $Title = $data['Title'];
    $FirstName = $data['FirstName'];
    $LastName = $data['LastName'];
    $Address = $data['Address'];
    $Number = $data['Number'];
    $Box = $data['Box'];
    $Color = $data['Color'];
    $Cities = $data['FkCities'];
     
    Database::disconnect(); 
     
    }
     
     
     
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="fr-FR">
    <head profile="http://gmpg.org/xfn/11">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <link   href="./css/bootstrap.min.css" rel="stylesheet">
        <script src="./js/bootstrap.min.js"></script>
    </head>
     
    <body>
        <div class="container">
     
                    <div class="span10 offset1">
                        <div class="row">
                            <h3>Mise &agrave; jour d'un contact</h3>
                        </div>
     
    					<form class="form-horizontal" action="update.php?id=<?php echo $id?>" method="post">
     
    						<div class="control-group ">
    							<label class="control-label">Civilit&eacute;</label>
    							<div class="controls">
    								<select name="Sex" id="Sex" placeholder="Sex">
    									<?php
    										switch ($Sex){
    											case "":
    												echo '<option value="" selected="selected"> - </option>
    													<option value="Madame">Madame</option>
    													<option value="Mademoiselle">Mademoiselle</option>
    													<option value="Monsieur">Monsieur</option>';
    												break;
    											case "Madame":
    												echo '<option value=""> - </option>
    													<option value="Madame" selected="selected">Madame</option>
    													<option value="Mademoiselle">Mademoiselle</option>
    													<option value="Monsieur">Monsieur</option>';
    												break;
    											case "Mademoiselle":
    												echo '<option value=""> - </option>
    													<option value="Madame">Madame</option>
    													<option value="Mademoiselle" selected="selected">Mademoiselle</option>
    													<option value="Monsieur">Monsieur</option>';
    												break;
    											case "Monsieur":
    												echo '<option value=""> - </option>
    													<option value="Madame">Madame</option>
    													<option value="Mademoiselle">Mademoiselle</option>
    													<option value="Monsieur" selected="selected">Monsieur</option>';
    													break;
    										}
    									?>	
    								</select>   
    								<span class="help-inline"></span>
    							</div>
    						</div>					  
     
    						<div class="control-group <?php echo !empty($TitleError)?'error':'';?>">
    							<label class="control-label">Titre</label>
    							<div class="controls">
    								<input name="Title" type="text" placeholder="Titre" value="<?php echo !empty($Title)?$Title:'';?>">
    								<?php if (!empty($TitleError)): ?>
    									<span class="help-inline"><?php echo $TitleError;?></span>
    								<?php endif;?>
    							</div>
    						</div>
     
    						<div class="control-group <?php echo !empty($FirstNameError)?'error':'';?>">
    							<label class="control-label">Pr&eacute;nom</label>
    							<div class="controls">
    								<input name="FirstName" type="text" placeholder="Pr&eacute;nom" value="<?php echo !empty($FirstName)?$FirstName:'';?>">
    								<?php if (!empty($FirstNameError)): ?>
    									<span class="help-inline"><?php echo $FirstNameError;?></span>
    								<?php endif;?>
    							</div>
    						</div>	
     
    						<div class="control-group <?php echo !empty($LastNameError)?'error':'';?>">
    							<label class="control-label">Nom</label>
    							<div class="controls">
    								<input name="LastName" type="text" placeholder="Nom" value="<?php echo !empty($LastName)?$LastName:'';?>">
    								<?php if (!empty($LastNameError)): ?>
    									<span class="help-inline"><?php echo $LastNameError;?></span>
    								<?php endif;?>
    							</div>
    						</div>
     
    						<div class="control-group <?php echo !empty($AddressError)?'error':'';?>">
    							<label class="control-label">Adresse</label>
    							<div class="controls">
    								<input name="Address" type="text" placeholder="Adresse" value="<?php echo !empty($Address)?$Address:'';?>">
    								<?php if (!empty($AddressError)): ?>
    									<span class="help-inline"><?php echo $AddressError;?></span>
    								<?php endif;?>
    							</div>
    						</div>
     
    						<div class="control-group <?php echo !empty($NumberError)?'error':'';?>">
    							<label class="control-label">Num&eacute;ro</label>
    							<div class="controls">
    								<input name="Number" type="text" placeholder="Num&eacute;ro" value="<?php echo !empty($Number)?$Number:'';?>">
    								<?php if (!empty($NumberError)): ?>
    									<span class="help-inline"><?php echo $NumberError;?></span>
    								<?php endif;?>
    							</div>
    						</div>
     
    						<div class="control-group <?php echo !empty($BoxError)?'error':'';?>">
    							<label class="control-label">Bo&icirc;te</label>
    							<div class="controls">
    								<input name="Box" type="text" placeholder="Bo&icir;te" value="<?php echo !empty($Box)?$Box:'';?>">
    								<?php if (!empty($BoxError)): ?>
    									<span class="help-inline"><?php echo $BoxError;?></span>
    								<?php endif;?>
    							</div>
    						</div>
     
    						<div class="control-group ">
    							<label class="control-label">Localit&eacute;</label>
    							<div class="controls">
    								<select name="Cities" id="Cities" placeholder="Localit&eacute;">
    									<option value=""> - </option>
     
    									<?php 
    										$pdo = Database::connect();
    										$sql = 'SELECT * FROM TblCities ORDER BY PostCode ASC';
    										foreach ($pdo->query($sql) as $row) {
    											if ($Cities == $row['IdCities']){
    												echo '<option value="' . $row['IdCities'] . '" selected="selected">' . $row['PostCode'] . '  |  ' . htmlentities($row['Cities'], ENT_COMPAT, "ISO-8859-1") . '</option>';                                
     
    											} else {
    												echo '<option value="' . $row['IdCities'] . '">' . $row['PostCode'] . '  |  ' . htmlentities($row['Cities'], ENT_COMPAT, "ISO-8859-1") . '</option>';                                
     
    											}
    										}	
    										Database::disconnect();
    									?> 
    								</select>
    								<span class="help-inline"></span>
    							</div>
    						</div>
     
    						<div class="control-group ">
    							<label class="control-label">Couleur politique</label>
    							<div class="controls">
    								<select name="Color" id="Color" placeholder="Couleur politique">
    									<?php 
    										switch ($Color){
    											case "":
    												echo '<option value="" selected="selected"> - </option>
    													<option value="CDH">CDH</option>
    													<option value="ECOLO">ECOLO</option>
    													<option value="MR">MR</option>
    													<option value="PS">PS</option>';
    												break;
    											case "CDH":
    												echo '<option value=""> - </option>
    													<option value="CDH" selected="selected">CDH</option>
    													<option value="ECOLO">ECOLO</option>
    													<option value="MR">MR</option>
    													<option value="PS">PS</option>';
    												break;
    											case "ECOLO":
    												echo '<option value=""> - </option>
    													<option value="CDH">CDH</option>
    													<option value="ECOLO" selected="selected">ECOLO</option>
    													<option value="MR">MR</option>
    													<option value="PS">PS</option>';
    												break;
    											case "MR":
    												echo '<option value=""> - </option>
    													<option value="CDH">CDH</option>
    													<option value="ECOLO">ECOLO</option>
    													<option value="MR" selected="selected">MR</option>
    													<option value="PS">PS</option>';
    												break;
    											case "PS":
    												echo '<option value=""> - </option>
    													<option value="CDH">CDH</option>
    													<option value="ECOLO">ECOLO</option>
    													<option value="MR">MR</option>
    													<option value="PS" selected="selected">PS</option>';
    												break;
    										}
    									?>
    								</select>
    								<span class="help-inline"></span>
    							</div>
    						</div>
     
    					    <div class="form-actions">
    							<button type="submit" class="btn btn-success">Update</button>
    							<a class="btn" href="index.php">Back</a>
                            </div>
                        </form>
                    </div>
     
        </div> <!-- /container -->
      </body>
    </html>
    une idée ?

  2. #2
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Points : 208
    Points
    208
    Par défaut
    Salut,

    Plutôt que fourrer tout le code, ^^, pourrais-tu fournir les élements suivants:

    * structure de la table via un export avec une ligne exemple
    * valeurs des variables suivantes lors de ton test : $Sex,$Title,$FirstName,$LastName,$Address,$Number,$Box,$Color,$Flag,$Cities,$id

    Mon petit doigt me dit qu'avant de nous avoir fournit tout ça tu trouveras tout seul

    Cdt

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if ($valid) {
     
    			echo $Sex . "-" . $Title . "-" . $FirstName . "-" . $LastName . "-" . $Address  . "-" . $Number . "-" . $Box . "-" . $Color . "-" . $Flag . "-" . $Cities . "-" . $id;
                $pdo = Database::connect();
                $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
                //$sql = "UPDATE TblPeople set Sex = '$Sex', Title = '$Title', FirstName = '$FirstName', LastName = '$LastName', Address = '$Address', Number = '$Number', Box = '$Box', Color = '$Color', Flag = '$Flag', FkCities = '$Cities' WHERE id = $id";;
    			$sql = "UPDATE TblPeople set Sex = ?, Title = ?, FirstName = ?, LastName = ?, Address = ?, Number = ?, Box = ?, Color = ?, Flag = ?, FkCities = ? WHERE id = ?";
    			$q = $pdo->prepare($sql);
                $q->execute(array($Sex,$Title,$FirstName,$LastName,$Address,$Number,$Box,$Color,$Flag,$Cities,$id));
    			//$q->execute(array($name,$email,$mobile,$id));
                Database::disconnect();
                header("Location: index.php");
            }
    l'echo me donne bien le contenu du formulaire update même avec changements

    structure de la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    CREATE TABLE IF NOT EXISTS `TblPeople` (
      `IdPeople` int(11) NOT NULL AUTO_INCREMENT,
      `FirstName` varchar(50) NOT NULL,
      `LastName` varchar(50) NOT NULL,
      `Sex` varchar(50) NOT NULL,
      `Title` varchar(50) NOT NULL,
      `Address` varchar(80) NOT NULL,
      `Number` varchar(5) NOT NULL,
      `Box` varchar(5) NOT NULL,
      `Color` varchar(20) NOT NULL,
      `Flag` int(11) NOT NULL,
      `FkCities` int(11) NOT NULL,
      PRIMARY KEY (`IdPeople`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8862 ;

  4. #4
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Points : 208
    Points
    208
    Par défaut
    Hey,

    Tu as juste oublier plus de la moitié des choses que je t'ai demandé
    Où sont les données du formulaire ?
    Où est la ligne exemple de la bdd ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    voici le formulaire principal

    Nom : screenshot.5.jpg
Affichages : 73
Taille : 74,2 Ko

    voici le formulaire update qui va rechercher les datas dans la db en fonction de l'IdPeople passer dans l'url

    Nom : screenshot.6.jpg
Affichages : 64
Taille : 70,8 Ko

    voila le résultat de l'echo

    Monsieur-Echevin-Simon-Culsonnait-rue des pétunias-52-1-MR-0-1182

    voici un screenshot de phpmyadmin

    Nom : screenshot.4.jpg
Affichages : 71
Taille : 99,3 Ko

    je ne sais pas si cela peu aider

  6. #6
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2012
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 133
    Points : 208
    Points
    208
    Par défaut
    Alors ta requête est erronée, tu n'as pas de colonne id dans ta table tblpeople, mais une colonne IdPeople.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 59
    Points : 31
    Points
    31
    Par défaut
    en effet....

    super merci.... parfois a avoir trop le nez sur la même page on ne voit plus toujours nos erreurs

    merci pour le temps passé...

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

Discussions similaires

  1. [Doctrine] Requete Update qui ne s'exécute pas.
    Par Tyra3l dans le forum ORM
    Réponses: 4
    Dernier message: 17/06/2011, 13h31
  2. Réponses: 1
    Dernier message: 27/02/2009, 14h09
  3. Creer une requete update qui recupere les données de 2 tables
    Par pooi1 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 13/06/2007, 13h13
  4. Requete UPDATE qui ne fonctionne pas
    Par JiB@ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/03/2007, 18h06
  5. requete update qui pose problème
    Par kirian dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/02/2007, 11h20

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