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 :

Problème avec la requete 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 confirmé
    Inscrit en
    Décembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 116
    Par défaut Problème avec la requete Update
    Bonsoir tous le monde,
    Voici la requête UPDATE que j'ai utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $requetespecial="UPDATE client SET Nom_client='".$_POST['Nom_client']."',Categ='".$_POST['Categ'].
    				"',Mail='".$_POST['Mail']."',Id='".$_POST['Id'].
    				"',Mdp='".$_POST['Mdp']."',Cmdp='".$_POST['Cmdp']."' WHERE Nom_client='".$_POST['Nom_client']."'";
    Lorsque j'utilise des données statiques il marche bien, exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $requetespecial="UPDATE client SET Nom_client='a',Categ='b',Mail='c',Id='d',Mdp='e',Cmdp='f' WHERE Nom_client='a'";
    Mais je veux qu'on récupère les données depuis des champs saisies comme le cas premier, mais il ne fait pas la mise à jour du table.
    Merci beaucoup pour votre réponse.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Par défaut Afficher les erreurs et échapper les données
    Bonsoir,

    Il faut connaître la raison de l'échec en affichant les erreurs

    ini_set('display_errors',1) ;
    ini_set('error_reporting','E_ALL|E_STRICT') ;

    une fois que tu auras vu l'erreur qui sera a priori une erreur de syntaxe du aux données que tu récupères en $_POST, il faudra controler tes données et les échappées avec la fonction mysql_real_escape_string.

    Xavier

  3. #3
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonsoir,

    Sans que ça marche plus, je ne vois pas pourquoi tu fais un SET du Nom_client avec un WHERE Nom_client, dans ton cas tu peux enlever cette partie du SET.

    Ensuite tu peux vérifier les types de ta table et les types de tes POST avec aussi les longueurs de chaines

  4. #4
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 116
    Par défaut
    Merci tous pour votre réponse,
    Lorsque j'ajoute OR die(mysql_error()), il affiche l'erreur suivant:
    Query was empty.
    Mais je connais pas ou est le problème.
    Merci beaucoup pour votre réponse.

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    D'après l'erreur un echo de $requetespecial serait vide ...

    Tu peux donner le bout de code concernant cette requête (surtout si il existe des conditions if).

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2006
    Messages
    116
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 116
    Par défaut
    et voici le code :
    merci d'avance



    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
    <?php
     
    echo include ("test.php");
     
    echo "<br><br>";
     
    include ("include.php");
     
    ini_set('display_errors',1) ;
     
    ini_set('error_reporting','E_ALL|E_STRICT') ;
     
    echo $_GET[Nom_client]."<br>";
    echo $_POST[Categ]."<br>";
    echo $_POST[Mail]."<br>";
    echo $_POST[Id]."<br>";
    echo $_POST[Mdp]."<br>";
    echo $_POST[Cmdp]."<br>";
     
    if ( $_GET[action]=="suppr")
    {
    $requetespeciale="DELETE FROM client WHERE Nom_client='$_GET[Nom_client]'";
     
    mysql_query($requetespeciale, $connection);
     
    } elseif ($_GET[action]=="modif"){
     
    $requetespecial=" UPDATE client SET Nom_client =  '$_GET[Nom_client]',Categ = '$_POST[Categ]',Mail = '$_POST[Mail]',Id = '$_POST[Id]',Mdp = '$_POST[Mdp]',Cmdp = '$_POST[Cmdp]'
    WHERE Nom_client = '$_GET[Nom_client]' ";
     
    //echo $requetespecial;
     
     
    mysql_query($requetespeciale, $connection);
    //il suffit d'ajouter une comparaison de la variable $_GET[action] sur la chaîne "insert" comme vous l'avez déjà fait avec les autres
     
    }elseif ($_GET[action]=="insert")
    {
    //envoie la requête qui va bien avec la fonction qui va bien
    $requetespeciale="INSERT client SET Nom_client='', Categ='$_POST[Categ]', Mail='$_POST[Mail]',Id='$_POST[Id]',Mdp='$_POST[Mdp]',Cmdp='$_POST[Cmdp]'";
     
     mysql_query($requetespeciale, $connection);
     }
     
    $requete="SELECT * FROM client ORDER BY Nom_client";
     
    echo $requete;
     
    $resultat=mysql_query ($requete,$connection);
     
    //echo $resultat;
    ?>
    <table border="1" width="685" align="center">
         <tr align="center">
    	    <td width="20%"><b>Nom_client</b></font></td>
    	    <td width="35%"><b>Categ</b></font> </td>
    	    <td width="25%"><b>Mail</b></font></td>
    		<td width="25%"><b>Id</b></font></td>
    		<td width="25%"><b>Mdp</b></font></td>
    		<td width="25%"><b>Cmdp</b></font></td>
    	    <td><b></b></td>
    		<td><b></b></td>
    	 </tr>
    	<?php
     
    	//affichage :
     
    	while($test=mysql_fetch_row($resultat)){
    		//$Nom_client=$test[0];
    		//$Categ=$test[1];
    		//$Mail=$test[2];
    		//$Id=$test[3];
    		//$Mdp=$test[4];
    		//$Cmdp=$test[5];
    	list($Nom_client,$Categ,$Mail,$Id,$Mdp,$Cmdp)=$test;
    	if ($_GET[action]!="modif"){
    		echo " <tr align='center' bgcolor=#92BCOB>";
    		echo '<td>';
    		echo MetsEnMajuscules($Nom_client);
    		echo '</td><td>';
    		echo $Categ;
    		echo '</td><td>';
    		echo ArrangeLeTexte($Mail);
    		echo '</td><td>';
    		echo $Id;
    		echo '</td><td>';
    		echo $Mdp;
    		echo '</td><td>';
    		echo $Cmdp;
    //créons le lien vers la page execute.php (la page en cours)
    		echo "<td><a href='execute.php?Nom_client=$Nom_client&action=suppr'><img src='supprimer.gif'></a></td>";
    //on ajoute un lien vers la page afficher_clt.php
            echo "<td><a href='modifier_clt.php?Nom_client=$Nom_client&action=modif'><img src='modifier.gif'></a></td>";
    		echo '</tr>';	
    		}else
    		{
    		echo " <tr align='center' bgcolor=#92BCOB>";
    		echo '<td>';
    		echo $_POST['Nom_client'];
    		echo '</td><td>';
    		echo $_POST['Categ'];
    		echo '</td><td>';
    		echo $_POST['Mail'];
    		echo '</td><td>';
    		echo $_POST['Id'];
    		echo '</td><td>';
    		echo $_POST['Mdp'];
    		echo '</td><td>';
    		echo $_POST['Cmdp'];
    //créons le lien vers la page execute.php (la page en cours)
    		echo "<td><a href='execute.php?Nom_client=$Nom_client&action=suppr'><img src='supprimer.gif'></a></td>";
    //on ajoute un lien vers la page afficher_clt.php
            echo "<td><a href='modifier_clt.php?Nom_client=$Nom_client&action=modif'><img src='modifier.gif'></a></td>";
    		echo '</tr>';
    		}
     
    	} ?>
    <tr><td><a href='modifier_clt.php?action=insert'><img src='ajouter.gif' /></a></td></tr>
    </table>

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

Discussions similaires

  1. [PHP 5.0] Problème avec une requete update php
    Par diblasio dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2010, 20h35
  2. problème avec la requete update
    Par Blade111 dans le forum SGBD
    Réponses: 3
    Dernier message: 18/08/2008, 12h57
  3. [MySQL] problème avec 2 requetes pour 1 même tableau
    Par guy2004 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 03/11/2005, 12h50
  4. [debutant]Problème avec une requete ....
    Par MichMich29 dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/07/2005, 17h19
  5. problème avec ma requete contenant un "in" :
    Par seb78000 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 10/07/2005, 16h38

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