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 :

UPDATE qui ne fonctionne pas. [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 34
    Par défaut UPDATE qui ne fonctionne pas.
    Bonjour,

    J'ai mon Update qui ne fonctionne pas. Il me retourne : MAJ échouée.

    voici ma page maj.php
    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
    <?php
    //inclusion dans lordre en suivant le code html
    require_once("../header.php");
    require_once("../menu.php");
     
     
    //variable
    $codehtml;
    //************************************
    	// initiation formulaire. savoir si le formulaire est validé
    	function initFormulaire()
    	{
     
    	// si le formulaire na jamais ete validé
    	if (!isset($_REQUEST["valider"]))
    		{
    		afficherFormulaire();
    		}
    		else
    		{
    		verifierFormulaire();
    		}
    	}
    //************************************
    	//afficher le formulaire
    	function afficherFormulaire()
    	{
    	//variable globale
    	global $codehtml;
     
    	//connexion BDD
    	include("../connexionBDD.php");
     
    	//recuperationde l'ID
    	$recupID=$_REQUEST["idTelephone"];
     
    	//requete de selection
    	$creationRequete="SELECT * FROM telephones WHERE idTelephone='$recupID'";
    	$requete=mysql_query($creationRequete);
    	$resultatRequete=mysql_fetch_assoc($requete);
     
     
     
    		//concatenation du formulaire
     
    		$codehtml.='<form id="formulaire" method="post" action="'.$_SERVER["PHP_SELF"].'">';
     
    //    ---------------------------		
    		//champs cachés stockant identifiant idTelephone à mettre a jour
    		$codehtml.='<p>';
    		$codehtml.='<input type="hidden" name="StockageID" value="'.$recupID.'"/>';
    		$codehtml.='</p>';
    		$codehtml.='<p>';
     
    //corespondant
    		$codehtml.='Correspondant : <input type="text" id="correspondant" name="correspondant" maxlength="50"';
     
    			$codehtml.=' value="'.htmlentities($resultatRequete["correspondant"], ENT_QUOTES,"UTF-8").'"'; //htmlentities converti les " en caracetree"
    		//}
    				$codehtml.='/>';
    $codehtml.='</br>';
     
     
    //poste
    		$codehtml.='Poste : <input type="text" id="poste" name="poste" maxlength="5"';
     
    			$codehtml.=' value="'.htmlentities($resultatRequete["poste"], ENT_QUOTES,"UTF-8").'"'; //htmlentities converti les " en caracetree"
    		//}
    				$codehtml.='/>';
    $codehtml.='</br>';
     
     
     
    //numtel
    		$codehtml.='Fixe : <input type="text" id="numTel" name="numTel" maxlength="5"';
     
     
    			$codehtml.=' value="'.htmlentities($resultatRequete["numTel"], ENT_QUOTES,"UTF-8").'"'; //htmlentities converti les " en caracetree"
    		//}
    				$codehtml.='/>';
    $codehtml.='</br>';
     
     
     
    //mail
    		$codehtml.='Email : <input type="text" id="mail" name="mail" maxlength="30"';
     
    			$codehtml.=' value="'.htmlentities($resultatRequete["mail"], ENT_QUOTES,"UTF-8").'"'; //htmlentities converti les " en caracetree"
    		//}
    				$codehtml.='/>';
    $codehtml.='</br>';
     
     
     
    //portable
    		$codehtml.='Portable : <input type="text" id="portable" name="portable" maxlength="30"';
     
    			$codehtml.=' value="'.htmlentities($resultatRequete["portable"], ENT_QUOTES,"UTF-8").'"'; //htmlentities converti les " en caracetree"
    		//}
    				$codehtml.='/>';
    $codehtml.='</br>';
     
     
    		$codehtml.='</p>';
     
    		$codehtml.=' </p>';
    		$codehtml.='<p>';
    		$codehtml.='<input type="submit" id="valider" name="valider" value="valider"/>';
    		$codehtml.='</p>';
    		$codehtml.='</form>';
    //    ---------------------------		
    	//afficher
    	echo $codehtml;
    	}
     
     
     
    	//deconnexion BDD
    	include("../deconnexionBDD.php");
    //************************************
    	//verifier le formulaire
    	function verifierFormulaire()
    	{
    		//variable booleane
    		$FormulaireValide=TRUE;
    		$messageErreur="";
     
     
     
    		//champ de correspondant
    		if(empty($_REQUEST["correspondant"])) //si le champ est vide
    		{
    			$FormulaireValide=FALSE;
    			$messageErreur.="Vous n'avez pas saisi de Correspondant.<br/>";
    		}
     
     
    		//champ de poste
    		if(empty($_REQUEST["poste"])) //si le champ est vide
    		{
    			$FormulaireValide=FALSE;
    			$messageErreur.="Vous n'avez pas saisi de poste.<br/>";
    		}
     
     
    		//champ de numTel
    		if(empty($_REQUEST["numTel"])) //si le champ est vide
    		{
    			$FormulaireValide=FALSE;
    			$messageErreur.="Vous n'avez pas saisi de numéro de fixe.<br/>";
    		}
     
    		//champ de mail : 
    				if(empty($_REQUEST["mail"])) //si le champ est vide
    				{
    					$FormulaireValide=FALSE;
    					$messageErreur.="Vous n'avez pas saisi de mail.<br/>";
    				}
     
     
    		//champ de portable : 
    				if(empty($_REQUEST["portable"])) //si le champ est vide
    				{
    					$FormulaireValide=FALSE;
    					$messageErreur.="Vous n'avez pas saisi de portable.<br/>";
    				}		
     
     
    //************************************	
    	//validité du formulaire
    		if ($FormulaireValide) //if ($FormulaireValide==true) meme chose
    		{
    		//maj des donnees		
    			majDonnee();
    		}
    		else
    		{
    			//reafficher le formulaire
    			afficherFormulaire();
     
    			//afficher les erreurs
    			echo "<p>".$messageErreur."</p>";
    		}
    	}
    //************************************
    //maj des donnes
    function majDonnee()
    {
    	//connexion a la BDD
    	include("../connexionBDD.php");
     
    	//recup donnees saisies
    	$recupID=$_REQUEST["StockageID"];
    	$recupcorrespondant=mysql_real_escape_string($_REQUEST["correspondant"]);
    	$recupposte=mysql_real_escape_string($_REQUEST["poste"]);
    	$recupnumTel=mysql_real_escape_string($_REQUEST["numTel"]);
    	$recupmail=mysql_real_escape_string($_REQUEST["mail"]);
    	$recupportable=mysql_real_escape_string($_REQUEST["portable"]);
     
     
     
    	$creationrequete="
    		UPDATE
    	 		telephones
    		SET
    			correspondant='$recupcorrespondant',
    			poste='$recupposte',
    			numTel='$recupnumTel',
    			mail='$recupmail',
    			portable='$recupportable',
    		WHERE idTelephone='$recupID'";
    	$requete=mysql_query($creationrequete);
     
    	//resultat
    	if ($requete)
    	{
    		echo $creationrequete;
    		echo"MAJ réussie";
    	}
    		else
    	{
    		echo $creationrequete;
    		echo"MAJ échouée";
    	}
     
     
     
     
    	//deconnexion a la BDD
    	include("../deconnexionBDD.php"); //erreur ?
     
     
     
     
     
    }
     
     
     
    ?>
     
    <!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">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>MAJ</title>
    </head>
     
    <body>
    <?php
    	// initiation formulaire. Affiche et voir si le formulaire est valide et validé
    	initFormulaire();
     
    ?>	
     
      	</body>
    </html>
    Je ne vois pas ce qui ne fonctionne pas. Par avance merci.

  2. #2
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    ça te retourne pas forcément quelque chose un update...

    tu as vérifié que ça avait changé des valeurs?

    récupère l'erreur mysql...

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Mars 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 9
    Par défaut
    mysql_query retourne un objet de type resource en cas de succes et false en cas d'erreur (cf la doc).

    $requete= mysql_query($creationrequete) or die(mysql_error());

    pourra certainement te mettre sur la voie, ton code est un peu longuet à analyser

  4. #4
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    pas tout à fait exact... pas dans le cas d'un insert, update ou replace c'est juste un booléen qui est retourné pour matérialisé la validité de la commande... cf la doc... c'est seulement pour les commande sql renvoyant un éventuel jeu de résultat qui donne retour à un objet...

    le problème est donc de tester ta requête dans phpmyadmin ou la console (plus pratique) pour voir ce qui ne va pas dedans par rapport au shéma de données de ta table...

    ou de récupérer l'erreur à chaque fois dans ton code via mysql_error comme le propose Oulalahakabu

    dans tout les cas il vaut mieux tester tes requêtes avant sur mysql pour éviter de cumuler des erreur sql puis php

    PS: l'extension mysql risque de bientôt être abandonné par php donc il vaut mieux passer à mysqli ou pdo qui support en plus les requêtes multiple et procédures stockées...


  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 34
    Par défaut
    Bonjour,

    merci pour votre aide.

    voici le retour à mysql_error

    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 'WHERE idTelephone='4'' at line 9
    Ce ne peut pas etre une histoire de quote ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 34
    Par défaut
    J'ai trouvé .

    j'avais une virgule en trop dans ma requete sql :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $creationrequete="
    		UPDATE
    	 		telephones
    		SET
    			correspondant='$recupcorrespondant',
    			poste='$recupposte',
    			numTel='$recupnumTel',
    			mail='$recupmail',
    			portable='$recupportable',
    		WHERE idTelephone='$recupID'";
    	$requete=mysql_query($creationrequete);

    Merci pour votre aide.

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

Discussions similaires

  1. [MySQL] Update qui ne fonctionne pas
    Par Pissou dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 28/03/2008, 15h16
  2. [MySQL] Code PHP sur des UPDATE qui ne fonctionne pas
    Par bilou95 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/10/2007, 11h57
  3. Requete UPDATE qui ne fonctionne pas
    Par JiB@ dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 02/03/2007, 18h06
  4. [MySQL] Requête update qui ne fonctionne pas
    Par Sylvain245 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 05/12/2005, 16h40
  5. [MySQL] UPDATE qui ne fonctionne pas
    Par philippef dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 13/09/2005, 14h35

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