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 :

mise a jour de données de base [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
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 24
    Par défaut mise a jour de données de base
    Saut les amis
    Bon voila je suis un débutante en php/mysql, j'ai créer une BD et je suis entrain de faire les ajouts et les suppressions
    à travers une interface web en utilisant le langage php, mon problème c'est les mise à jour des enregistrement sur la BD,
    j'utilise un formulaire pour afficher un enregistrement récupéré de la BD, puis je modifie les champs du formulaire que je désire mettre à jours,
    une fois je valide le traitement s'effectue le plus normalement , c'est-à-dire aucun message d'erreur concernant la syntaxe de php ou de sql .
    En cherchant au niveau de la BD si la modification a u lieu je trouve que non et que l'enregistrement a gardé la valeur ancienne.
    Ou est l'erreur je ne sais pas, veuillez m'aider,et merci d'avance.
    ***le script est le suivant:****


    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
     
     
     
     
    <?php
    mysql_connect("localhost","root","");
    mysql_select_db("ma base");?>
     <table>
     
    				 <tr>
    				  <form action="mod.php" method="post">
    				  <td><div align="center" class="Style2">
                          <h4>Site</h4>
                        </div></td>
                          <td><p>
                            <label>
                              <select name="id">
    						  <option> </option>
    						  <?php
                              $req="select DISTINCT id from user ";
                              $ql=mysql_query($req) or die ("erreur requete");
    						 while($rrr=mysql_fetch_array($ql)){
                             echo"<option>".$rrr["id"]."</option>";
                                }
    					      ?>
                              </select>
                            </label>
                          </p></td>
    					  <td><input type="submit" name="ok" value="ok" /></td></form>
    				 </tr>
    				  <tr>
     
    <?php
     
    if(isset($_POST['ok']) && !empty($_POST['id']) )
    { 
    extract($_POST);
     
     
     
     
    $query="SELECT *
    FROM user
     WHERE user.id='".$_POST['id']."'";
     $mes_resultats=mysql_query($query);
    if(mysql_num_rows($mes_resultats)==0){
    echo"<script type=\"text/javascript\">alert('Pas de données!');history.back();</script>";
    exit();
    }
    else if (mysql_num_rows($mes_resultats)!=0)
    {while($row=mysql_fetch_array($mes_resultats))
    {?>
     <table border="1"  cellpadding="1" cellspacing="1" align="center">
     <tr> <td bgcolor="#FFFFFF" class="Style3">id</td><td><input type="text" name="id" value="<?php echo $row['id']; ?>"/></td>
    </tr>
    <tr> <td bgcolor="#FFFFFF" class="Style3">pseudo</td><td><input type="text" name="pseudo" value="<?php echo $row['pseudo']; ?>"/></td>
    </tr>
    <tr> <td bgcolor="#FFFFFF" class="Style3">date</td><td><input type="text" name="date" value="<?php echo $row['date_ins']; ?>"/></td>
    </tr>
     <?php }}
     
     echo"<div align=\"center\"> ";
    echo "<form action=\"mod.php\" method=\"post\">";
     echo "<table width=\"215\">";
     echo " <tr>";
      echo "  <td width=\"61\"><label>";
      echo   " <input type=\"submit\" name=\"mod\" value=\"modifier\" />";
      echo " </label></td>";
     
      echo "</tr>";
    echo "</table>";
    echo "</form>";
    echo "</div>";
    }
    /// end else//
     
     
    ////end if principale///?>
    <?
     if(isset($_POST['mod'])){
    $sql="UPDATE `user` SET 
    `pseudo` = '".$_POST['pseudo']."',
    `date_ins` = '".$_POST['date']."' WHERE `user`.`id` ='".$_POST['id']."'  ";
    echo $sql;
     mysql_query($sql) or die ("erreur mise à jour");
    }
    ?>
     
     
     
     
     
     
    </tr>
     
    				</table>

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo"<option>".$rrr["id"]."</option>";
    Il manque la valeur pour chaque option, l'attribut -> value.
    C'est cette valeur qui sera renvoyée lors de la soumission du formulaire.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <select name="nom_de_la_liste">
        <option value="valeur_qui_sera_renoyée">Valeur visible</option>
        ... etc ...
    </select>
    Il n'est pas conseillé de faire un extract d'une donnée extérieur comme $_POST (et GET, COOKIE), cela est peu sécurisé.

    Il faut prendre conscience que toutes les données obtenues en POST (donc stockée dans $_POST), sans exception, seront transformées en variables.
    Par conséquent un éventuel pirate aura tout le loisir de rajouter des paramètres en POST, on lui donne alors la possibilité de modifier le comportement notre propre programme/application (on peu tout imaginer).

    Il vaut mieux procéder ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if(isset($_POST['ok']) && !empty($_POST['id']) )
    { 
        $ok = $_POST['ok'];
        $id = (int)$_POST['id'];
        // ... etc ...
    }
    En exploitant uniquement ce qu'on a prévu en POST, et peu importe la quantité de données qu'il y a.
    Filtrer les données est nécessaire aussi (si c'est une date, on vérifiera que celle-ci est conforme à ce qu'on attend, etc ...), ceci par mesure de sécurité et de fiabilité de son code.

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2012
    Messages : 24
    Par défaut
    merci pour ta réponse c'est très utile

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

Discussions similaires

  1. Problème de mise à jour des données en base
    Par raiseyourfist59 dans le forum Hibernate
    Réponses: 1
    Dernier message: 22/08/2011, 20h50
  2. Bonne pratique pour la mise à jour de données en base
    Par abbepierre94 dans le forum Silverlight
    Réponses: 3
    Dernier message: 23/08/2010, 23h12
  3. [MySQL] Mise a jour de données d'une base à une autre
    Par ptityop dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 08/03/2008, 20h16
  4. Mise a jour system de la base de registre
    Par sitirna dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/09/2006, 21h33
  5. mise a jours des données sous access
    Par puyopuyo dans le forum ASP
    Réponses: 4
    Dernier message: 25/05/2004, 12h46

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