Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2007, 14h57   #1
Invité de passage
 
Inscription : juin 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 5
Points : 1
Points : 1
Par défaut [SQL] probleme avec update

bonjour à tous

je dois modifier certains de mes enregistrements.

J'ai donc créer un formulaire ou j'affiche mes données en fonction de l'id puis j'appelle ma page update.

Et évidemment je galère en fait, je n'arrive pas à récupérer l'ID, il me semble.
Qui est assez généreux pour me donner un coup de pouce ?
D'avance merci

Voici mon code

Code :
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
<?php
	include "config.php3";
	// on se connecte à la base de donnée
	$dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion3");
	// on selectionne votre base
	mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base");
 
 
if (isset($_POST['ID']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['telportable'])){
 
	//recup des variables
    $ID = $_POST['ID'];  
    $nom = $_POST['nom'];  
    $prenom = $_POST['prenom'];  
    $adresse = $_POST['adresse'];
	$telfixe = $_POST['telfixe'];
	$portable = $_POST['telportable'];
 
	// on exécute la requête  pour modification 
 
	 $req_update = ("UPDATE  ficheperso SET  nom = '$nom', prenom ='$prenom', adresse ='$adresse',telfixe='$telfixe',telportable='$portable' WHERE ID ='$ID'")or die ("erreur la modif n'est pas effectuée"); 
 
     $requete = mysql_query($req_update)or die(mysql_error());
 
	}
//controle, pour savoir si la modif est effectuée:
  if($requete)
  {
    echo("La modification à été correctement effectuée") ;
  }
  else
  {
    echo "<br>";
	echo("La modification n° $ID à échouée") ;
  }
 
?>
pareo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 15h01   #2
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
t'as une erreur sur le dernier mysql error ?? c'est ça ?
si c'est ça :
Code :
1
2
 
 $requete = mysql_query($req_update)or die("Erreur MySQL :". $req_update."<br>". mysq_error());
en affichant ta requete, tu verras surement d'ou viens ton erreur
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 15h03   #3
Membre Expert
 
Inscription : octobre 2002
Messages : 1 141
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : octobre 2002
Messages : 1 141
Points : 1 204
Points : 1 204
Envoyer un message via MSN à Raideman
Essaie d'afficher l'état de tes variables pour voir où celà coince.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
echo $_POST['ID'];
if (isset($_POST['ID']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['telportable'])){
 
	//recup des variables
    $ID = $_POST['ID'];  
    $nom = $_POST['nom'];  
    $prenom = $_POST['prenom'];  
    $adresse = $_POST['adresse'];
	$telfixe = $_POST['telfixe'];
	$portable = $_POST['telportable'];
echo "UPDATE  ficheperso SET  nom = '$nom', prenom ='$prenom', adresse ='$adresse',telfixe='$telfixe',telportable='$portable' WHERE ID ='$ID'";
//etc...
Dis nous donc ce que te renvoie les echo.

Le deuxieme echo devrait te renvoyer la requete sql qui est executé. Si l'erreur vient de cette requete, essaie de voir si tu n'as pas une faute de syntaxe dedans ou si il ne te manque pas une variable.

Car à première vue je ne vois rien de choquant dans ton code.
Raideman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 15h14   #4
Invité de passage
 
Inscription : juin 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 5
Points : 1
Points : 1
ben non justement je n'ai aucun retour
si ce n'est mon if en bas du code qui me renvoie
La modification n° à échouée et comme vous pouvez le constater il ne met même pas le N° de la fiche

et c'est bien ce qui m'inquiète
pareo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 15h46   #5
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
en desous ton mysql_query

mets pour savoir :
Code :
printf ("Lignes modifiées : %d\n", mysql_affected_rows());
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 15h51   #6
Invité de passage
 
Inscription : juin 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 5
Points : 1
Points : 1
J'ai mis ta ligne en dessous de la requête
printf ("5 : %d\n", mysql_affected_rows());

nada rien

je ne pige pas là
pareo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 16h04   #7
Membre chevronné
 
Avatar de LeXo
 
Inscription : janvier 2004
Messages : 1 147
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : janvier 2004
Messages : 1 147
Points : 782
Points : 782
t'as fais un echo de ta requete
et du $_POST['id'] ?? et c'est bon ?
LeXo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 10h15   #8
Invité de passage
 
Inscription : juin 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 5
Points : 1
Points : 1
oui c bon pour l echo

je reprends a zero g 1 form qui m affiche les donnés dans des input je change la donnée dans un input et je clique sur le bouton modif et il ne se passe rien

donc g mis çà <a href= "update2.php" ?ID=$ID method="POST">Modifier</a>

tu vois et là effectivement ma page update arrive sauf qu 'elle ne modifie rien

je procede autrement

dans l'entete de mon form je mets <form action = update.php etc..

et si j appuis sur mon bouton modif là il modifie bien ma ligne

on conclue donc que ma page update fonction bien

par contre en faisant form action .........

je peut pas modifie mes champs puisqu' a chaque ENTER il m'envoi ma page update
voilà je tourne en rond là

voici un bout de code de la page

Code :
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<html>
<head>
  <title>affichage des données dans le formulaire</title>
 
</head>
 
 
<body>
 
<p></p>
<form>
 
<p><?php
 //on récupère la donnée issue de $_GET
 
 if (isset($_GET['ID'])) $ID = htmlentities($_GET['ID'], ENT_QUOTES); else $ID =1; {
 
 include "config.php3"; 
 //on se connecte à la base 
 $dbconnect = mysql_connect($cfgHote,$cfgUser) or die ("erreur de connexion serveur"); 
 //sélection de la base de données: 
 mysql_select_db($db,$dbconnect) or die ("impossible de selectionner la base"); 
 
 
 //Si $ID est different de vide ('') 
 
 if ($ID != '')
 
//on prépare la requête  
 
$sql = 'select ID,  nom,prenom,adresse,telfixe,telportable FROM ficheperso WHERE ID='.$ID.'';  
 // echo("$sql")
//on exécute la requête  
 
$requete = mysql_query($sql)or die('erreur sql ho là!<br>'.$sql.'<br>'.mysql_error());  
 
 
//on récupère les données dans un tableau  
 
$data = @mysql_fetch_array($requete);  
 
$ID = $data['ID'];  
 
$nom = $data['nom'];  
 
$prenom = $data['prenom'];  
 
$adresse = $data['adresse'];  
 
$telfixe = $data['telfixe'];  
 
$portable = $data['telportable'];  
}
 ?>
 	<a href= "update2.php" ?ID=$ID method="POST">Modifier</a>
 
  <table align="center" border="0" cellpadding="2" cellspacing="10">
 
    <body>
 
      <tr align="center">
 
	<td><input name="ID" value="<?php echo $ID;?>" ></td>
            <td></td>
            <td></td>
		</tr>
		<tr align="center">
        <td>nom</td>
 
        <td><input  name="nom" value="<?php echo $nom ;?>" type="text"></td>
 
            <td></td>
      </tr>
 
      <tr align="center">
 
        <td>prenom</td>
 
        <td><input name="prenom" value="<?php echo $prenom ;?>" type="text"></td>
 
            <td></td>
      </tr>
 
 
 
        <p></p>
 
        </td>
 
            <td></td>
      </tr>
 
      <tr align="center">
 
        <td colspan="2" height="14"><input action="update2.php" type="submit" value="modifier"  method="POST" > 
                </td>
 
            <td>      
 
 
    </tbody></td>
        </tr>
 
  </table>
 
</form>
 
<p></p>
 
</body>
</html>
pareo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 10h59   #9
Invité de passage
 
Inscription : juin 2005
Messages : 5
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 5
Points : 1
Points : 1
Par défaut je suis un imbécile

enfin c resolu tout betement en relisant mon dernier topic la lumière

g simplement rajouter une deuxieme balise FORM action etc.....


et mon bouton modif fonctionne correctement

merci quand meme
pareo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h39.


 
 
 
 
Partenaires

Hébergement Web