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 :

Formulaire pour UPDATE


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut Formulaire pour UPDATE
    Ce code m'affiche dans un tableau le contenu de ma table joueur
    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
    <?php 
    	if ($connexion = mysql_connect("localhost","pouet","prout")) {
    		if (mysql_select_db("trezemix",$connexion)) {
    			$req=mysql_query("SELECT Prenom,Nom,Nationalite,Club,IdJ FROM Joueur ORDER BY Nom");
    			while($row=mysql_fetch_array($req)){
    				$idjoueur=$row['IdJ'];
    				echo"<tr>";
    				echo"<td>".$row['Prenom']."</td>";
    				echo"<td>".$row['Nom']."</td>";
    				echo"<td>".$row['Nationalite']."</td>";
    				echo"<td>".$row['Club']."</td>";
    				echo"<td>"."<a href='modifier_joueur.php?id=$idjoueur'>"."modifier"."</td>";
    				echo"<td>"."<a href='supprimer_joueur.php?id=$idjoueur'>"."supprimer"."</td>";
    				echo"</tr>";}					
    		} else die("erreur de sélection de la base <br>".mysql_error());
    	} else die("erreur de connexion sql <br>".mysql_error());
    ?>
    Je recupere correctement l'identifiant pour pré remplir mes champs :
    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
    <?php 
    $idjoueur=$_GET["id"];
    	if ($connexion = mysql_connect("localhost","trezemix","thomas")) {
    		if (mysql_select_db("trezemix",$connexion)) {
    			echo thomas; echo $idjoueur; echo thomas;
    			$req=mysql_query("SELECT IdJ,Prenom,Nom,Nationalite,Club FROM Joueur WHERE IdJ='$idjoueur'");
    			if( $req){$joueur=mysql_fetch_assoc($req);}
    		} else die("erreur de sélection de la base <br>".mysql_error());
    	} else die("erreur de connexion sql <br>".mysql_error());
    ?>
     
    <form method=post action="modifier_joueur.php">
    <TABLE BORDER=0>
    <TR><TD>Prenom</TD>
    	<TD>
    	<INPUT type=text name="prenom" value="<?php echo $joueur[Prenom];?>">
    	</TD></TR>
    <TR><TD>Nom</TD>
    	<TD>
    	<INPUT type=text name="nom" value="<?php echo $joueur[Nom];?>">
    	</TD></TR>
    <TR><TD>Nationalité</TD>
    	<TD>
    	<INPUT type=text name="nationalite" value="<?php echo $joueur[Nationalite];?>">
    	</TD></TR>
    <TR><TD>Club</TD>
    	<TD>
    	<INPUT type=text name="club" value="<?php echo $joueur[Club];?>">
    	</TD></TR>
    <TR><TD>Enregistrer la modification</TD>
    	<TD>
    	<INPUT type="submit" value="Envoyer">
    	</TD>
    </TR>	
    </TABLE>
    </form>
    <?php
    	$prenom=$_POST['prenom'];
    	$nom=$_POST['nom'];
    	$nationalite=$_POST['nationalite'];
    	$club=$_POST['club'];
     
    	mysql_query("UPDATE Joueur 
    				 SET Prenom='$prenom', Nom='$nom', Nationalite='$nationalite', Club='$club' WHERE IdJ='$idjoueur'");
    Mais la requete de modification ne se fait pas!
    Est-que je dois faire la requete sur une autre page en devant encore récupérer toute les valeurs dans l'url ou-a-t-il un autre probleme ?
    merci d'avance

  2. #2
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    salut
    essaye ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql_query("UPDATE Joueur
    SET Prenom='$prenom', Nom='$nom', Nationalite='$nationalite', Club='$club' WHERE IdJ='$idjoueur'") or die(mysql_error());
    ça te dira si y'a un message d'erreur

  3. #3
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut non
    il y a pas de message d'erreur mais en fait ça me modifie la ligne en une ligne vide

  4. #4
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    bon essaye ça pour voir à quoi ressemble ta requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = "UPDATE Joueur
    SET Prenom='$prenom', Nom='$nom', Nationalite='$nationalite', Club='$club' WHERE IdJ='$idjoueur'";
    echo $query;
    mysql_query($query) or die(mysql_error());

  5. #5
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    en effet j'ai un probleme de guillemet " et d'apostrophe '

    je cherche un peu merci

  6. #6
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut toujours pas :(
    UPDATE Joueur SET Prenom=Eric, Nom=Abidal, Nationalite=Français, Club=Lyon/FC Barcelone Poste=Defenseur droit WHERE IdJ=\'\'You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Barcelone Poste=Defenseur droit WHERE IdJ=\'\'' at line 2

    $query = "UPDATE Joueur
    SET Prenom=$prenom, Nom=$nom, Nationalite=$nationalite, Club=$club Poste=$poste WHERE IdJ=\'$idjoueur\'";
    j'ai essayé cote, guillemet, rien ? a moins que je me soit trompé encore ?

  7. #7
    Membre éprouvé Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Par défaut
    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Barcelone Poste=Defenseur droit WHERE IdJ=\'\'' at line 2
    Je pense qu'il te manque une virgule après club :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query = "UPDATE Joueur
    SET Prenom=$prenom, Nom=$nom, Nationalite=$nationalite, Club=$club, Poste=$poste WHERE IdJ=\'$idjoueur\'";

  8. #8
    Membre éclairé
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2006
    Messages
    264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2006
    Messages : 264
    Par défaut
    UPDATE Joueur SET Prenom='Eric', Nom='Abidal', Nationalite='Français', Club='Lyon/FC Barcelone', Poste='Defenseur droit' WHERE IdJ=''
    cela m'affiche et m'enregistre une ligne vide

    je sais pas si tu peux relire mon code mais le problème est je pense le suivant:

    quand j'arrive sur le formulaire les champs sont bien pré rempli pui la requete UPDATE s'effectue avant que je ne clique sur envoyer
    puis comme mon "action" c'est la page elle meme ca rerempli les champs de maniere vide je ne sais pourquoi et donc sa update une ligne vide

    mais je ne sais comment resoudre çà

  9. #9
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    L'id du joueur, transmis par la méthode GET au formulaire, n'est pas retransmis (et récupéré) à/pour la soumission du formulaire.



    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
    if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
        function stripslashes_array($array) {
            return is_array($array) ? array_map('stripslashes_array', $array) : stripslashes($array);
        }
     
        $_GET = stripslashes_array($_GET);
        $_POST = stripslashes_array($_POST);
    }
     
    mysql_query(
        sprintf(
            "UPDATE Joueur SET Prenom='%s', Nom='%s', Nationalite='%s', Club='%s' WHERE IdJ=%d",
            mysql_real_escape_string($_POST['prenom']),
            mysql_real_escape_string($_POST['nom']),
            mysql_real_escape_string($_POST['nationalite']),
            mysql_real_escape_string($_POST['club']),
            $id
        )
    );

Discussions similaires

  1. Prendre des variable d'un formulaire pour un autre
    Par soltani.slim dans le forum Access
    Réponses: 4
    Dernier message: 22/06/2005, 17h06
  2. Réponses: 4
    Dernier message: 03/05/2005, 17h02
  3. problème pour updater une BD
    Par yoda_style dans le forum ASP
    Réponses: 6
    Dernier message: 17/03/2005, 10h56
  4. Réponses: 3
    Dernier message: 24/02/2005, 15h48
  5. Formulaire pour base XML
    Par Nyx dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 12/02/2003, 20h51

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