PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 21-03-2010 16:46:23

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

PROBLEME AVEC UPDATE

JE viens a vous parceque je suis bloquer depuis 4 JOURS merci de votre eventuelle aide.
mon probleme:
sur formulaire  je saisie le n de la ligne a modifier c'est :code1.php qui appele a son tour code2.php
code2 me renvoi un formulaire bien rempli avec les donnees de la ligne choisi en code1.
JE MODIFIE SUR CODE2.PHP MAIS RIEN NE SE PASSE SUE MA BASE MYSQL ... c'est qq chose que je n'arrive pas avoir merci de me corriger le code
voici mes codes
CODE1:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"[url]http://www.w3.org/TR/REC-html40/strict.dtd[/url]">
<html>
<head>
<title>Modifiez ...</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<form action= "code2.php" method="post" enctype="multipart/form-data">
<fieldset>
<legend><b>Saisissez  le code client pour modifier</b></legend>
<table> <tr> <td>Code client : </td>
<td><input type="text" name="code" size="20" maxlength="10"/></td></tr>
<tr><td>Modifier : </td> <td><input type="submit" value="Modifier"/></td></tr>
</table>
</fieldset>
</form>
</body>
</html>
 

CODE 2 QUI POSE PROBLEME/


<?php
if(empty($_POST['code'])){header("Location:code1.php");}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"[url]http://www.w3.org/TR/REC-html40/strict.dtd[/url]">
<html>
<head>
<title>Modifiez vos coordonnées</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<?PHP
if($_POST[' modif ']='Enregistrer')
{
//CREATION DU FORMULAIRE
include('connex.inc.php');
$code=mysql_escape_string($_POST['code']);
//Requète SQL
$requete="SELECT * FROM client WHERE id_client='$code' ";
$idcom=connex('enaf','myparam');
$result=@mysql_query($requete,$idcom);
$coord=mysql_fetch_row($result);
mysql_close($idcom);
//Création du formulaire
echo "<form action= \"". $_SERVER['PHP_SELF']."\" method=\"post\"enctype=\"application/x-www-form-urlencoded\">";
echo "<fieldset>";
echo "<legend><b>Modifiez vos coordonnées</b></legend>";
echo "<table>";
echo "<tr><td>Nom : </td><td><input type=\"text\" name=\"nom\" size=\"40\"maxlength=\"30\" value=\"$coord[1]\"/> </td></tr>";
echo "<tr><td>Prénom : </td><td><input type=\"text\" name=\"prenom\" size=\"40\"maxlength=\"30\" value=\"$coord[2]\"/></td></tr>";
echo "<tr><td>Age : </td><td><input type=\"text\" name=\"age\" size=\"40\"maxlength=\"2\" value=\"$coord[3]\"/></td></tr>";
echo "<tr><td>Adresse : </td><td><input type=\"text\" name=\"adresse\" size=\"40\"maxlength=\"60\" value=\"$coord[4]\"/></td></tr>";
echo "<tr><td>Ville : </td><td><input type=\"text\" name=\"ville\" size=\"40\"maxlength=\"40\" value=\"$coord[5]\"/></td></tr>";
echo "<tr><td>Mail : </td><td><input type=\"text\" name=\"mail\" size=\"40\"maxlength=\"50\" value=\"$coord[6]\"/></td></tr>";
echo "<tr><td><input type=\"reset\" value=\" Effacer \"></td> <td><input type=\"submit\" name=\"modif\" value=\"Enregistrer\"></td></tr></table>";
echo "</fieldset>";
echo "<input type=\"hidden\" name=\"code\" value=\"$code\"/>";
echo "</form>";
}
elseif(isset($_POST['nom'])&& isset($_POST['adresse'])&& isset($_POST['ville']))
{
//ENREGISTREMENT
include('connex.inc.php');
$nom=mysql_escape_string($_POST['nom']);
$adresse=mysql_escape_string($_POST['adresse']);
$ville=mysql_escape_string($_POST['ville']);
$mail=mysql_escape_string($_POST['mail']);
$code=mysql_escape_string($_POST['code']);
//Requète SQL
$requete="UPDATE client SET nom='$nom',adresse='$adresse',ville='$ville',mail='$mail' WHERE id_client='$code'";
$idcom=connex('magasin','myparam');
$result=mysql_query($requete,$idcom);
mysql_close($idcom);
if(!$result)

{
echo "<script type=\"text/javascript\">
alert('Erreur : "
.mysql_error()."')</script>";
}
else
{
echo "<script type=\"text/javascript\"> alert('Vos modifications sont enregistrées');window.location='index.htm';</script>";
}
}
else
{
echo "Modifier vos coordonnées!";
}
?>
</body>
</html>
 

MERCI DE VOTRE AIDE

Hors ligne

#2 21-03-2010 19:11:10

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : PROBLEME AVEC UPDATE

Rajoutes un or die(mysql_error()) à la fin de mysql_query() on verra tout de suite si la requête est exécutée et si oui pourquoi cela ne fonctionne pas.

Hors ligne

#3 21-03-2010 21:37:03

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME AVEC UPDATE

MERCI POUR LA REPONSE J'ai fait mais ca donne toujours rien si comme si les donnes affiches sur le formulaires sont verouillé et ne peuvent etre changés ...je me casse la tete toujours

Dernière modification par SAAD207 (21-03-2010 22:50:51)

Hors ligne

#4 22-03-2010 11:58:23

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : PROBLEME AVEC UPDATE

salut,

ton code affichera toujours : Modifier vos coordonnées!

Pourquoi parce que tu n'as nulle part prévu le fait que ton formulaire d'origine ne contient de $_POST['code'] ce qui fait qu'il ne remplit aucune des conditions de ta structure if / elseif, cela finit donc sur le else indiqué ci dessous.

il te faut revoir ta conception  de page afin de pallier ce problème.

commentaire globaux sur ton code :
- Oublie l'utilisation de l'arrobas devant une fonction cela empêche tout debug tu n'es pas dans une phase de "production".
- Oublie le select * et indique les champs que tu dois récupérer explicitement. Par ailleurs tu ne testes pas que le résultat fourni par Mysql est unique, comment peux tu savoir si tu récupères les bonnes infos ?
- ton enregistrement fait une mise a jour de la base, que se passe-t'il si le "code" n'existe pas ? (tu vas afficher un formulaire avec des erreurs sur les index qui n'existe pas à "l'étape" if, et dans le elseif tu vas faire un UP d'un truc qui n'existe pas et tu retrouves avec des tas d'erreurs et un possible trou de sécurité.

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#5 22-03-2010 19:52:27

SAAD207
Membre
Inscription : 21-03-2010
Messages : 40

Re : PROBLEME AVEC UPDATE

un grand merci pour ta reponse et le temps consacré
finalemenet le code marche a cause de la condition de l’instruction if
qui est vérifiée car la variable $_POST[’modif’] ne contient rien.
Elle correspond à la valeur associée au bouton submit du formulaire qui n’est pas encore
créé.IL SUFFIT DE FAIRE  if($_POST['modif']!= 'Enregistrer')  A LA PLACE DE if($_POST['modif']= 'Enregistrer')
CE PETIT POINT EXLAMATION ! M'a fait vivre 4 NUIT PRECEQUE BLANCHE  JE REFILE LE CODE QUI MARCHE BIEN/
<?php
if(empty($_POST['code'])){header("Location:cd1.php");}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
"http://www.w3.org/TR/REC-html40/strict.dtd">
<html>
<head>
<title>Modifiez vos coordonnées</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
<?php

if($_POST['modif']!= 'Enregistrer')
{
//CREATION DU FORMULAIRE
include('connex.inc.php');
$code=mysql_escape_string($_POST['code']);
//Requète SQL
$requete="SELECT * FROM client WHERE id_client='$code' ";
$idcom=connex('enaf','myparam');
$result=@mysql_query($requete,$idcom);
$coord=mysql_fetch_row($result);
mysql_close($idcom);
//Création du formulaire
echo "<form action= \"". $_SERVER['PHP_SELF']."\" method=\"post\"enctype=\"application/x-www-form-urlencoded\">";
echo "<fieldset>";
echo "<legend><b>Modifiez vos coordonnées</b></legend>";
echo "<table>";
echo "<tr><td>Nom : </td><td><input type=\"text\" name=\"nom\" size=\"40\"maxlength=\"30\" value=\"$coord[1]\"/> </td></tr>";
echo "<tr><td>Prénom : </td><td><input type=\"text\" name=\"prenom\" size=\"40\"maxlength=\"30\" value=\"$coord[2]\"/></td></tr>";
echo "<tr><td>Age : </td><td><input type=\"text\" name=\"age\" size=\"40\"maxlength=\"2\" value=\"$coord[3]\"/></td></tr>";
echo "<tr><td>Adresse : </td><td><input type=\"text\" name=\"adresse\" size=\"40\"maxlength=\"60\" value=\"$coord[4]\"/></td></tr>";
echo "<tr><td>Ville : </td><td><input type=\"text\" name=\"ville\" size=\"40\"maxlength=\"40\" value=\"$coord[5]\"/></td></tr>";
echo "<tr><td>Mail : </td><td><input type=\"text\" name=\"mail\" size=\"40\"maxlength=\"50\" value=\"$coord[6]\"/></td></tr>";
echo "<tr><td><input type=\"reset\" value=\" Effacer \"></td> <td><input type=\"submit\" name=\"modif\" value=\"Enregistrer\"></td></tr></table>";
echo "</fieldset>";
echo "<input type=\"hidden\" name=\"code\" value=\"$code\"/>";
echo "</form>";
}
elseif(isset($_POST['nom'])&& isset($_POST['adresse'])&&  isset($_POST['age'])&& isset($_POST['ville']))
{
//ENREGISTREMENT
include('connex.inc.php');
$nom=mysql_escape_string($_POST['nom']);
$adresse=mysql_escape_string($_POST['adresse']);
$ville=mysql_escape_string($_POST['ville']);
$mail=mysql_escape_string($_POST['mail']);
$age=mysql_escape_string($_POST['age']);
$code=mysql_escape_string($_POST['code']);
//Requète SQL
$requete="UPDATE client SET nom='$nom',adresse='$adresse' ,age='$age',ville='$ville',
mail='$mail' WHERE id_client='$code'";
$idcom=connex('enaf','myparam');
$result=mysql_query($requete,$idcom);
mysql_close($idcom);
if(!$result)


echo "<script type=\"text/javascript\">
alert('Erreur : ".mysql_error()."')</script>";

else
{
echo "<script type=\"text/javascript\"> alert('Vos modifications sont enregistrées');window.location='cd1.php';</script>";
}
}
else
{
echo "Modifier vos coordonnées!";
}
?>
</body>
</html>
UN GRAND MERCI. MAINTENENT JE ME PREPARE POUR UNE NOUVELLE AVENTURE EN CREANT UN FORMULAIRE DE RECHERCHE MULLTICHAMPS J'avoue que je connais rien mais je finirai par arriver C'EST t'a une idee je suis prenant
MERCI POUR TOUT

Hors ligne

#6 23-03-2010 12:51:12

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : PROBLEME AVEC UPDATE

Hum nom parce $_POST['modif'] n'exise pas. Isset ou empty serait plus indiquée
Leieux serait meme de nommer le submit du 1er formulaire et de lui donner un value explicite afin d'éviter un code qui ne fonctionne que parve ton error reporting n'est pas a E_ALL.

Pour la recherche commence par utiliser like et ensuite regarde match et ou soundex (tous sa c'est du sql).
@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

Pied de page des forums