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

Langage PHP Discussion :

Modifier en fonction de l'ID


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 15
    Points
    15
    Par défaut Modifier en fonction de l'ID
    Bonjour tout le monde

    Après recherche je n'ai pas trouvé ce que je recherche

    Je n'arrive pas à modifier les données d'un formulaire en fonction de l'ID cela fait 2 jours que j'ai le nez dessus mais je ne vois pas.

    Je suis novice en PHP

    Voici le code

    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
    <?php
    $sql = "select * from table"; 				
    $req = mysql_query($sql) or die(mysql_error());
     
     
    $lien = $_POST['lien'];
    $contenu = $_POST['contenu'];
    $date = $_POST['date'];
     
     
    if (isset($_POST['lien']) AND (isset($_POST['contenu'])) AND (isset($_POST['date']))
    {  
            mysql_query("UPDATE table SET lien='$lien', contenu='$contenu', date='$date' WHERE id='$id'") or die (mysql_error()); 
    }
     echo'<input type="submit" id="submit" value="Modifier"/>';
     
     	while ($don = mysql_fetch_assoc($req))
    	{
     
     
                    echo'<div class="exp">
                    
                      <div class="exp_date"><strong><textarea rows="1" name="date" >'.$don['date'].'</textarea></strong></div>
                      <div class="exp_soc"><strong><textarea rows="1" name="lien" >'.$don['lien'].'</textarea></div>
                      <div class="exp_exp"><textarea rows="15" cols="45" name="contenu" >'.$don['contenu'].'</textarea></div>
                    </div><input type="submit" id="submit" value="Modifier"/>';
     
      }
      ?>
    Merci d'avance pour votre aide et vos remarques...

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut
    Bonjour,

    - Premier soucis, il y a une paranthèse de trop à la ligne 11 :
    (isset($_POST['contenu']))

    - Second soucis, si tu consultes la table avant de la mettre à jour, les données que tu vas afficher dans le formulaire seront obsolètes...

    Si ça ne répond pas à ta question, il faudrait peut être developper un peu tes problèmes...

    Bon courage !

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    tu le récupère où, ce $id ??

    D'autre part :
    remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    if (isset($_POST['lien']) AND (isset($_POST['contenu'])) AND (isset($_POST['date']))
    {  
            mysql_query("UPDATE table SET lien='$lien', contenu='$contenu', date='$date' WHERE id='$id'") or die (mysql_error()); 
    }
    ?>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    if ( isset($_POST['lien']) && isset($_POST['contenu']) && isset($_POST['date']) )
    {  
    	$id 	= '?????????'; // d'où il sort ???
    	// PROTECTION des donnees (IMPORTANT !!)
    	$lien 	= mysql_real_escape_string($_POST['lien']);
    	$contenu = mysql_real_escape_string($_POST['contenu']);
    	$date 	= mysql_real_escape_string($_POST['date']);
    	$query 	= "UPDATE table SET lien = '".$lien."', contenu = '".$contenu."', date = '".$date."' WHERE id = '".$id."';";
            mysql_query($query) or die (mysql_error()); 
    }
    ?>

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Bonjour albedo0,

    Merci de m'avoir répondu,

    Que veux tu dire par

    "si tu consultes la table avant de la mettre à jour, les données que tu vas afficher dans le formulaire seront obsolètes... "


    Merci

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,
    tu le récupère où, ce $id ??

    D'autre part :
    Salut

    Oui justement de nul part mais alors comment faire pour le déclarer?

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pelluche Voir le message
    comment faire pour le déclarer?
    dans la bouche while, ajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="id" value="<?php echo $don['id']; ?>"/>
    Du coup, ca devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    if ( isset($_POST['id']) && isset($_POST['lien']) && isset($_POST['contenu']) && isset($_POST['date']) )
    {  
    	// PROTECTION des donnees (IMPORTANT !!)
    	$id 	= mysql_real_escape_string($_POST['id']);
    	// [......]
    ?>

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par albedo0 Voir le message
    si tu consultes la table avant de la mettre à jour, les données que tu vas afficher dans le formulaire seront obsolètes...
    Il veut dire qu'il faut mettre les lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    $sql = "select * from table"; 				
    $req = mysql_query($sql) or die(mysql_error());
    ?>
    APRES le code de modification (if ... UPDATE ...)
    Ceci afin de récupérer les données APRES modification.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Alors merci beaucoup!!!!! excellent
    j'effectue les modification pour voir si cela fonctionne


  9. #9
    Invité
    Invité(e)
    Par défaut
    Au fait, elles sont où tes BALISES <form ...> </form> ?????

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    ah oui elles y sont mais un plus haut

    j'avais mis qu'un bout de code

  11. #11
    Membre actif
    Profil pro
    Inscrit en
    Février 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 248
    Points : 231
    Points
    231
    Par défaut
    Hou la la effectivement j'en avais zappé pas mal des soucis...

  12. #12
    Invité
    Invité(e)
    Par défaut
    Ca devrait ressembler à ca :
    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
    <?php
    // -----------------------
    // TRAITEMENT du formulaire (si envoyé)
    // -----------------------
    if ( isset($_POST['id']) && isset($_POST['lien']) && isset($_POST['contenu']) && isset($_POST['date']) )
    {  
    	// --------------
    	// recuperation des donnees
    	$id 	= $_POST['id'];
    	$lien 	= $_POST['lien'];
    	$contenu = $_POST['contenu'];
    	$date 	= $_POST['date'];
    	// --------------
    	// PROTECTION des donnees (IMPORTANT !!)
    	$id 	= mysql_real_escape_string($id);
    	$lien 	= mysql_real_escape_string($lien);
    	$contenu = mysql_real_escape_string($contenu);
    	$date 	= mysql_real_escape_string($date);
    	// --------------
    	// MODIFICATION de la fiche
    	$query 	= "UPDATE table SET lien = '".$lien."', contenu = '".$contenu."', date = '".$date."' WHERE id = '".$id."';";
           	mysql_query($query) or die (mysql_error()); 
    	// --------------
    }
    // -----------------------
    // AFFICHAGE du FORMULAIRE
    // -----------------------
    // requete : toutes les fiches de la table
    	$sql = "select * from table"; 				
    	$req = mysql_query($sql) or die(mysql_error());
     
    // formulaire
    while ($don = mysql_fetch_assoc($req))
    {
    	// ecriture de chaque ligne
    ?>
    	<div class="exp">
    	<form method="post" action="">
    		<input type="hidden" name="id" value="<?php echo $don['id']; ?>"/>
    		<div class="exp_date">
    			<textarea rows="1" name="date" ><?php echo $don['date']; ?></textarea>
    		</div>
    		<div class="exp_soc">
    			<textarea rows="1" name="lien" ><?php echo $don['lien']; ?></textarea>
    		</div>
    		<div class="exp_exp">
    			<textarea rows="15" cols="45" name="contenu" ><?php echo $don['contenu']; ?></textarea>
    		</div>
    		<input type="submit" id="submit" value="Modifier"/>
    	</form>
    	</div>
    <?php
    } // fin while
    ?>
    ps : UN formulaire et UN bouton "Modifier" pour CHAQUE ligne.

    Remarque :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( isset($_POST['id']) && isset($_POST['lien']) && isset($_POST['contenu']) && isset($_POST['date']) )
    Ca suppose que tous les champs sont obligatoires (et doivent tous etre renseignés)
    Si seul le "contenu" (par exemple) est obligatoire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ( isset($_POST['id']) && isset($_POST['contenu']) && $_POST['contenu']!='' )

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    YESSSSSSSSSSSSSSSSSSSSS ça marche!!!!!!

    Merci jreaux62!!!!!!!!!

    Avec les explication en plus

    Je vais m'abonner à ce forum je le sens!

    Juste une petite chose pour les personnes désirant récupérer le bout de script

    il y a un ";" en trop à la ligne 21
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $query 	= "UPDATE table SET lien = '".$lien."', contenu = '".$contenu."', date = '".$date."' WHERE id = '".$id."';";
    A la rigueur si tu peux l'editer jreaux62?

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pelluche Voir le message
    il y a un ";" en trop à la ligne 21
    et NON ! il n'est pas en trop !

    - le 1er est dans la requete SQL : il "ferme" la requête (et marque sa fin)
    Il n'est pas obligatoire, mais il "sécurise" la requête (en empêchant d'ajouter quoi que ce soit derrière)
    C'est une bonne habitude à prendre.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "UPDATE table SET lien = '".$lien."', contenu = '".$contenu."', date = '".$date."' WHERE id = '".$id."';"
    - le 2eme est la fin d'instruction de ligne PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $query 	= .......................;

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 23
    Points : 15
    Points
    15
    Par défaut
    Ah ok autant pour moi!!

    En tout cas merci beaucoup je peux avancer maintenant

    Bye

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

Discussions similaires

  1. Réponses: 27
    Dernier message: 14/01/2008, 09h57
  2. Réponses: 6
    Dernier message: 08/12/2007, 14h33
  3. Problème pour modifier une fonction
    Par condor_01 dans le forum C
    Réponses: 5
    Dernier message: 05/11/2007, 23h03
  4. Réponses: 2
    Dernier message: 26/03/2007, 17h25
  5. Réponses: 3
    Dernier message: 19/07/2005, 12h05

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