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 UPDATE enfin, je crois [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 18
    Points
    18
    Par défaut Problème avec UPDATE enfin, je crois
    Je possède un formulaire qui permet de modifier une entrée sur ma table.
    Je vous mets la structure de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    commune -----------> text 
    convention --------> char 
    civilite ----------> varchar 
    responsable -------> text 
    tel ---------------> varchar 
    tel2 --------------> varchar 
    email -------------> varchar 
    mobile ------------> varchar 
    fax ---------------> varchar
    Prenons par exemple la commune de Cabriès.
    Quand je souhaite modifier cette entrée tout marche bien. Mon script modifie tout parfaitement.

    Maintenant prenons Aix En Provence.
    Quand je souhaite modifier l’entrée mon script me dit que le changement a été fait, alors qu’en réalité rien n’a été modifié.

    Après quelques essais, je me suis aperçu que toute les commune qui ont un espace (comme Aix en Provence, Carry le Rouet…) la modification ne se fait pas.

    Je vous mets ci-dessous le code de mon formulaire ainsi que le code que traite les informations.

    Le Formulaire de Modification :
    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
     
    $nom = $_GET['mod'];
    mysql_connect("localhost", "root", "") || die ("Connexion au serveur impossible");
    mysql_select_db("cda") || die ("La base de donnée n'existe pas");
    $rep=mysql_query("SELECT * FROM liste_commune WHERE commune='$nom'");
    $donnees = mysql_fetch_array($rep);
    ?>
    <div class=en_tete>Modifier la commune :<br /><?php echo $donnees['commune']; ?></div>
     
    <div id=menu>
    		<?php include('menu.php'); ?>
    </div>
     
    <div id=corps>
    <form action=modif_commune.php method=POST>
    	<input type=hidden name=cacher value=<?php echo $nom; ?>>
    		<center>
    		<table class=formulaire>
    			<tr>
    				<td>Nom de la commune :</td>
    				<td></td>
    				<td>
    				<textarea cols=15 rows=1 name="nom_commune"><?php echo $donnees['commune']; ?></textarea>
    				</td>
    			</tr>
    			<tr>
    				<td>A-t-on un convention</td>
    				<td>?</td>
    				<td>
    				<input type="radio" name="convention" value=Oui<?php if ($donnees['convention'] == 'Oui'){ echo ' checked '; } ?>> Oui<br />
    				<input type="radio" name="convention" value=Non<?php if ($donnees['convention'] == 'Non'){ echo ' checked '; } ?>> Non
    				</td>
    			</tr>
    			<tr>
    				<td>Civilité du responsable :</td>
    				<td></td>
    				<td>
    				<select name="civilite">
    					<option value="M.">M.</option>
    					<option value="Mme">Mme</option>
    					<option value="Melle">Melle</option>
    				</select>
    				</td>
    			</tr>			
    			<tr>
    				<td>Nom du responsable</td>
    				<td>:</td>
    				<td>
    				<textarea cols=15 rows=1 name="responsable"><?php echo $donnees['responsable']; ?></textarea>
    				</td>
    			</tr>
    			<tr>
    				<td>Téléphonne n°1</td>
    				<td>:</td>
    				<td><input type="text" name="tel" value=<?php echo $donnees['tel']; ?>></td>
    			</tr>
    			<tr>
    				<td>Téléphonne n°2</td>
    				<td>:</td>
    				<td><input type="text" name="tel2" value=<?php echo $donnees['tel2']; ?>></td>
    			</tr>
    			<tr>
    				<td>Mobile</td>
    				<td>:</td>
    				<td><input type="text" name="mobile" value=<?php echo $donnees['mobile']; ?>></td>
    			</tr>
    			<tr>
    				<td>Fax</td>
    				<td>:</td>
    				<td><input type="text" name="fax" value=<?php echo $donnees['fax']; ?>></td>
    			</tr>			
    			<tr>
    				<td>Courriel</td>
    				<td>:</td>
    				<td><input type="text" name="mail" value=<?php echo $donnees['email']; ?>></td>
    			</tr>
    			<tr>
    				<td colspan=3 align=center><input type="submit" name="Envoyer !"></td>
    			</tr>
    			</table>
    		</center>
    		</form>
    <?php
    mysql_close();
    }
    ?>
    modif_commune.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
     
    <?php
            $nom = $_POST['cacher'];
            $convention = $_POST['convention'];
            $nom_commune = addslashes($_POST['nom_commune']);
            $civilite = $_POST['civilite'];
            $nom_responsable = $_POST['responsable'];
            $tel1 = $_POST['tel'];
            $tel2 = $_POST['tel2'];
            $mail = $_POST['mail'];
            $mobile = $_POST['mobile'];
            $fax = $_POST['fax'];
     
    mysql_connect("localhost", "root", "")|| die(mysql_error());
    mysql_select_db("cda")|| die(mysql_error());
     
    mysql_query("UPDATE liste_commune SET commune='".$nom_commune."', convention='".$convention."', civilite='".$civilite."', responsable='".$nom_responsable."', 
     tel='".$tel1."', tel2='".$tel2."', email='".$mail."', mobile='".$mobile."', fax='".$fax."'  WHERE commune='".$nom."'" )|| die(mysql_error());
     
    mysql_close();
    ?>
    La fiche commune à été correctement modifiée.
     
    <a href="modif_commune.php#" onclick="top.close()">Fermer la fen&ecirc;tre</a>
    SVP aidez moi, cela fait maintenan 2 jours que je galaire sur ce script !!!

    A très bientôt

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Points : 304
    Points
    304
    Par défaut
    Que donne ceci
    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
    <?php
            $nom = $_POST['cacher'];
            $convention = $_POST['convention'];
            $nom_commune = addslashes($_POST['nom_commune']);
            $civilite = $_POST['civilite'];
            $nom_responsable = $_POST['responsable'];
            $tel1 = $_POST['tel'];
            $tel2 = $_POST['tel2'];
            $mail = $_POST['mail'];
            $mobile = $_POST['mobile'];
            $fax = $_POST['fax'];
     
    mysql_connect("localhost", "root", "")|| die(mysql_error());
    mysql_select_db("cda")|| die(mysql_error());
    echo "UPDATE liste_commune SET commune='".$nom_commune."', convention='".$convention."', civilite='".$civilite."', responsable='".$nom_responsable."', 
     tel='".$tel1."', tel2='".$tel2."', email='".$mail."', mobile='".$mobile."', fax='".$fax."'  WHERE commune='".$nom."'";
    mysql_query("UPDATE liste_commune SET commune='".$nom_commune."', convention='".$convention."', civilite='".$civilite."', responsable='".$nom_responsable."', 
     tel='".$tel1."', tel2='".$tel2."', email='".$mail."', mobile='".$mobile."', fax='".$fax."'  WHERE commune='".$nom."'" )|| die(mysql_error());
     
    mysql_close();
    ?>
    La fiche commune à été correctement modifiée.
     
    <a href="modif_commune.php#" onclick="top.close()">Fermer la fen&ecirc;tre</a>
    L'écho donne quoi?

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    L'echo donne :

    UPDATE liste_commune SET commune='CARRY LE ROUET', convention='Non', civilite='M.', responsable='', tel='', tel2='', email='', mobile='', fax='' WHERE commune='CARRY'
    Je pense avoir compris.
    l'erreur vien de WHERE commune='CARRY' normalemant il doit marquer 'CARRY LE ROUET'

    La variable $nom elle vien du champ de type "hidden" du formulaire qui lui prend le nom de la commune dans la table.

    Mais pourquoi il supprime tout ce qu'il y a après l'espace???

  4. #4
    Inscrit

    Profil pro
    H4X0|2 @ YourLabs Business Service
    Inscrit en
    Octobre 2006
    Messages
    657
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : H4X0|2 @ YourLabs Business Service
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 657
    Points : 909
    Points
    909
    Par défaut
    Il faut urgemment que vous preniez connaissance de mysql_real_escape_string.
    Lisez la documentation et vous comprendrez. Si vous avez ces notions : laissez tomber les magic_quotes au plus vite.

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Mai 2007
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    j'ai pas très bien compri les mysql_real_escape_string

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

Discussions similaires

  1. Problème avec "update" du code ASP
    Par ocean_prince11 dans le forum ASP
    Réponses: 14
    Dernier message: 24/11/2006, 18h56
  2. Problème avec Excel et tableau croisé dynamique
    Par françois62 dans le forum VBScript
    Réponses: 9
    Dernier message: 19/11/2006, 22h17
  3. problème avec update dans h:datatable
    Par rarrou dans le forum JSF
    Réponses: 1
    Dernier message: 03/11/2006, 15h22
  4. problème avec update
    Par chingo dans le forum Requêtes
    Réponses: 7
    Dernier message: 14/10/2006, 23h16
  5. [MySQL] Problème avec UPDATE
    Par oim dans le forum PHP & Base de données
    Réponses: 30
    Dernier message: 22/04/2006, 10h12

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