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 :

Modifier Valeur BDD [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
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Par défaut Modifier Valeur BDD
    Sur la page ci dessous je récupère des données d'une page précédente dans des textfields. Je souhaiterais pouvoir modifier ces textfields afin de metre a jour ma base de donnée MySQL via le bouton confirmer changements.

    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
     
    <?php 
     
    $x=$_POST['envoi'];
    $cnx=mysql_connect("127.0.0.1","root","root") or die("Base non trouvée");
    $db=mysql_select_db( "inventaire");
    $sql="SELECT *  FROM `stock` WHERE Code=$x ORDER BY `Code` ASC";
    $requete=mysql_query( $sql, $cnx);
     
    	while($result=mysql_fetch_object($requete))
    	{
    		$nom=$result->nom;
    		$reference=$result->reference;
    		$type=$result->type;
    		$quantite=$result->quantite;
    		$date_entree=$result->date_entree;
    		$date_sortie=$result->date_sortie;
    		$code=$result->code;
     
    	}
    ?>
    <p align="center" class="style1">Modification d'un article: </p>
    <p align="center" class="style1">&nbsp;</p>
    <form id="form1" name="form1" method="post" action="Modifier3.php">
      <div align="right">
        <p>&nbsp;</p>
      </div>
     
      <div align="justify">
        <input name="Nom" type="text" value="<?php echo "$nom" ?>" />
    	<input name="Nom1" type="hidden" value="<?php echo "$nom" ?>" />
      <strong>Nom</strong></div>
      <p align="justify"><strong>
        <label>
        <input name="Reference" type="text" value="<?php echo ("$reference"); ?>" />
    	<input name="Reference1" type="hidden" value="<?php echo "$reference" ?>" />
        </label>
        Reference</strong></p>
      <p align="justify"><strong>
        <input name="Type" type="text" value="<?php echo ("$type"); ?>" />
    	<input name="Type1" type="hidden" value="<?php echo "$type" ?>" />
    	<label>
    	Type<br />
    	<br />
    	<input name="Quantite" type="text" value="<?php echo ("$quantite"); ?>" />
    	<input name="Quantite1" type="hidden" value="<?php echo "$quantite" ?>" />
        </label>
      Quantite</strong></p>
      <p align="justify"><strong>
        <label>
        <input name="Date_entree" type="text" value="<?php echo ("$date_entree"); ?>" />
    	<input name="Date_entree1" type="hidden" value="<?php echo "$date_entree" ?>" />
        </label>
      Date entree  </strong></p>
      <p align="justify"><strong>
        <label>
        <input name="Date_sortie" type="text" value="<?php echo ("$date_sortie"); ?>" />
    	<input name="Date_sortie1" type="hidden" value="<?php echo "$date_sortie" ?>" />
        </label>
        Date sortie  </strong></p>
      <p align="justify">&nbsp;</p>
    </form>
    <form id="form1" name="form1" method="post" action="Modifier3.php">
     
      <div align="right">
        <p align="left">
          <input type="submit" name="Submit2" value="Confirmer Modification" />
          <input type="hidden" name="modif" value="<?php echo $x ?>" />
        </p>
      </div>
     
    </form>
    Pour l'instant l'action UPDATE de la page 2 fonctionne mais au lieu de prendre en compte les changements, elle ne met a jour que des valeur NULL (vide)

    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
     <?php
     
    $nom=$_POST['Nom1'];
    $reference=$_POST['Reference'];
    $type=$_POST['Type'];
    $date_entree=$_POST['Date_entree'];
    $date_sortie=$_POST['Date_sortie'];
    $quantite=$_POST['Quantite'];
     
    echo "$nom1,<br> $reference1,<br> $type1,<br> $date_entree1,<br> $date_sortie1,<br> $quantite1";
     
    $sql="UPDATE stock
    			SET nom ='$nom1',
    			reference='$reference1',
    			type='$type1',
    			date_entree='$date_entree1',
    			date_sortie='$date_sortie1',
    			quantite='$quantite1'
    			WHERE code=$a";
     
    $requete=mysql_query($sql);
     
     if ($requete)
     {
     echo (mysql_affected_rows()."Stock Modifié !!!<br>");
     }
     else
     {
     echo "Modification Echouée :(".$req;
     }
     mysql_close($cnx);
     
     ?>
    me suis bien fait comprendre ? ( au lieu de modifier ca met des "blanc" dans tt les champs )
    Je precise que je travaillais pas sur ce projet avant aujourd'hui, et mes capacités en PHP limités. mais on m'a dit que le plus gros etais fait et qu'il ne manque plus grand chose a faire pour que ca marche bien.
    HELP !!!!!

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Première chose pour t'aider à déboguer ton code : afficher toutes les variables.
    Par exemple, faire un :
    pour afficher ta requête (et vérifier qu'elle est bonne).

    Pour identifier tes variables, tu peux faire quelque chose comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo "Nom POST: " . $_POST['nom'] . "<br/>";
    echo "Nom var : " . $nom . "<br/>";
    (à faire bien entendu après le $nom = $_POST['nom']; )

    Tu peux aussi le faire pour toutes ces variables ($quantite, $nom...).

    Sur les grandes lignes (je n'ai pas vérifié dans le détail), le code a l'air juste. Donc c'est sûrement un petit détail caché

    Je ne sais pas dans quelle mesure tu es débutant en PHP, donc n'hésite pas à le dire si j'ai été trop brutal (mais je ne pense pas avoir visé trop haut ).

    Une dernière question (peut-être bête) : les tables sont bien créées et remplies sur la base de données locale ? (parce que s'il n'y a rien, ça en renvoie rien).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Par défaut
    J'ai essayé de rajouter des echo , mais je ne recupere pas mes valeurs
    Le echo ne m'affiche que des "," ....
    Je pense que le probleme vient en autre de mes input hidden.... qqn peut y jeter un oeil ? ca me prend la tete la.. pkoi les données passent pas

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    En fait, je ne vois pas à quoi ils servent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input name="Reference" type="text" value="<?php echo ("$reference"); ?>" />
    <input name="Reference1" type="hidden" value="<?php echo "$reference" ?>" />
    C'est une valeur de sauvegarde ?
    Si ce n'est pas le cas, tu peux supprimer tous ces champs hidden.

    Ensuite... c'est normal que tes variables soient vides ! (ouf ! )
    Tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = $_POST['Nom1'];
    [...]
    echo "$nom1";
    La variable $nom1 n'a pas été initialisée (et, au passage, la variable $nom n'est pas utilisée).

    Si tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $nom = $_POST['Nom'];
    [...]
    echo "$nom";
    ça fonctionnera beaucoup mieux (en faisant pareil avec les autres variables).

    Une petite remarque en passant. Quand tu affiches une variable seule (par exemple, dans value="<?php echo ("$reference"); ?>), évite d'utiliser les guillemets : value="<?php echo $reference; ?>.

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Par défaut
    Voilà un exemple de code que j'ai fait récemment. Son but était de permettre aux utilisateurs de poster des avis sur les options de 3e année d'une école.

    J'ai essayé de suffisamment le commenter, si des détails techniques restent flous, n'hésite pas.

    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
    <?php
     
    # Connection a la base de donnees
    # Il est conseille de creer un utilisateur 
    # pour ton script et d'eviter "root"
    $dbhost = "localhost";
    $dbuser = "toto";
    $dbpass = "toto";
    $dbname = "mabase";
     
    $link = mysql_connect($dbhost, $dbuser, $dbpass);
    mysql_select_db($dbname, $link);
     
    // 1er acces page (le formulaire n'est pas validé)
    if (!isset($_POST['submit'])) {
        // Test si on a tous les paramètres
        if (!isset($_GET['opt_id'])) {
            // Pas d'option selectionnee (passage de la variable dans
            // l'url : mapage.php?opt_id=ABC
            echo "Message d'errreur";
        } else { // Tout est bon
            $opt_id = $_GET['opt_id'];
     
            // Test si l'utilisateur a deja fait un commentaire sur cette option
            // Requete SQL
            $__query = "SELECT * FROM avis_options WHERE ao_opt_id = '" . $opt_id . "' AND ao_user_id = " . $_SESSION['idutilisateur'];
            // Exécution de la requête et récupération des résultats
            $__res = mysql_query($__query);
     
            // Si pas de résultats (total de ligne récupérées = 0)
            if (mysql_num_rows($__res) == 0) {
                $crea = 1; // Flag pour indiquer qu'on créé l'entrée
                $eval = "";
            } else {
                // Edition de l'avis
                $crea = 0;
                // Récupération de la ligne renvoyée par la base sous
                // forme de tableau
                $eval = mysql_fetch_array($__res);
            }
     
            // Formulaire
            echo "<form method=\"post\" action=\"\">\n";
            echo "<h4>Option&nbsp;" . $opt_id . "</h4><br/>\n";
            echo "<p><i>Tu peux utiliser des balises HTML dans ton commentaire. </i></p><br/>";
            echo "<label>Titre de l'avis&nbsp;:</label><br/>";
            echo "<input type=\"text\" id=\"ao_titre\" name=\"ao_titre\" value=\"" . stripslashes($eval['ao_titre']) . "\"/><br/><br/>\n";
            echo "Contenu de l'avis&nbsp;:<br/>";
            echo "<textarea id=\"ao_avis\" name=\"ao_avis\" rows=\"10\" cols=\"75\">" . stripslashes($eval['ao_avis']) . "</textarea><br/>\n";
            echo "<input id=\"submit\" name=\"submit\" type=\"submit\" value=\"Envoyer\"/><input type=\"reset\" value=\"Effacer\"/>";
            echo "<input id=\"crea\" name=\"crea\" type=\"hidden\" value=\"$crea\"/>";
            echo "<input id=\"opt_id\" name=\"opt_id\" type=\"hidden\" value=\"$opt_id\"/>";
            echo "</form>\n";
        }
    } else {// Si le formulaire a déjà été validé
        // Variable pour savoir si on créé ou si on modifie
        $crea = $_POST['crea'];
        if ($crea == 1) { // Insertion
            $__query = "INSERT INTO `avis_options` " .
                    "(`ao_opt_id` ,`ao_user_id` ,`ao_titre` ,`ao_avis`) " .
                    "VALUES " .
                    "('" . $_POST['opt_id'] . "', '" . $_SESSION['idutilisateur'] . "', '" . addslashes($_POST['ao_titre']) . "', '" . addslashes($_POST['ao_avis']) . "');";
        } else { // Mise a jour
            $__query = "UPDATE `avis_options` " .
                    "SET " .
                    "`ao_titre` = '" . addslashes($_POST['ao_titre']) . "'," .
                    "`ao_avis` = '" . addslashes($_POST['ao_avis']) . "'," .
                    "WHERE `ao_opt_id` =" . $_POST['opt_id'] . " " .
                    "AND `ao_user_id` =" . $_SESSION['idutilisateur'] . ";";
        }
        mysql_query($__query);
     
        // Redirection vers la page des avis
    ?>    
     
        Merci d'avoir pris le temps de donner ton avis ! <br/>
        Tu peux maintenant <a href="....">retourner &agrave; la liste des options de 3A</a>. 
     
    <?php    
    }
    ?>

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 10
    Par défaut J'ai trouvé !!!!
    Bon voila j'ai trouvé, en fait mon bouton "confirmer modification" ne faisait pas partie du meme formulaire que mes textfields ...
    voila le code corrigé :
    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
    <?php 
    $x=$_POST['envoi'];
    $cnx=mysql_connect("127.0.0.1","root","root") or die("Base non trouvée");
    $db=mysql_select_db( "inventaire");
    $sql="SELECT *  FROM `stock` WHERE Code=$x ORDER BY `Code` ASC";
    $requete=mysql_query( $sql, $cnx);
     
    	while($result=mysql_fetch_object($requete))
    	{
    		$nom=$result->nom;
    		$reference=$result->reference;
    		$type=$result->type;
    		$quantite=$result->quantite;
    		$date_entree=$result->date_entree;
    		$date_sortie=$result->date_sortie;
    		$code=$result->code;
    	}
     
    ?>
    <p align="center" class="style1">Modification d'un article: </p>
    <p align="center" class="style1">&nbsp;</p>
    <form id="form1" name="form1" method="post" action="Modifier3.php">
      <div align="right">
        <p>&nbsp;</p>
      </div>
      <label>
     
      <div align="justify">
        <input name="Nom" type="text" value="<?php echo ("$nom") ?>" />
        <strong>Nom</strong></div>
      <p align="justify"><strong>
        <label>
        <input name="Reference" type="text" value="<?php echo ("$reference"); ?>" />
        </label>
        Reference</strong></p>
      <p align="justify"><strong>
        <input name="Type" type="text" value="<?php echo ("$type"); ?>" />
    	<label>
    	Type<br />
    	<br />
    	<input name="Quantite" type="text" value="<?php echo ("$quantite"); ?>" />
        </label>
      Quantite</strong></p>
      <p align="justify"><strong>
        <label>
        <input name="Date_entree" type="text" value="<?php echo ("$date_entree"); ?>" />
        </label>
      Date entree  </strong></p>
      <p align="justify"><strong>
        <label>
        <input name="Date_sortie" type="text" value="<?php echo ("$date_sortie"); ?>" />
     
        </label>
        Date sortie  </strong></p>
      <p align="center">
        <input type="hidden" name="modif" value="<?php echo $x ?>" />
        <input type="submit" name="Submit2" value="Confirmer Modification" />
      </p>
    </form>


    Merci a tout ceux qui ont essayé de m'aider

    A+

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

Discussions similaires

  1. Modifier valeur Scale
    Par Invité dans le forum Tkinter
    Réponses: 2
    Dernier message: 07/06/2006, 14h49
  2. Je ne peux plus modifier ma bdd
    Par tinwul dans le forum Access
    Réponses: 4
    Dernier message: 02/05/2006, 11h32
  3. Réponses: 4
    Dernier message: 15/02/2006, 12h46
  4. Réponses: 4
    Dernier message: 30/12/2005, 11h00
  5. Zone de liste modifiable + Valeur par défaut
    Par Frac dans le forum Access
    Réponses: 7
    Dernier message: 27/10/2005, 08h21

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