Problème modifications de données sql

Fermé
jrweb58 - 31 oct. 2004 à 19:46
 darquos - 18 déc. 2007 à 22:20
Bonjour à tous,
Je débute en PHP et SQL et j’ai besoin d’aide
J’ai récupéré sur le net un script de modification de données ( je ne sais plus ou ni qui l’a fait) par un interface web qui se trouve en partie admin d’un site.
Ma base sql (agence) comprend la table t_images qui elle comprend les champs id_im, nom , lamy, date, comment, cota, parte, embal

Lorsque j’ai un enregistrement dans ma table et que je veux le modifier, je passe par le fichier modification 1 qui me liste tous les enregistrements présents dans ma table classés par ordre de référence ( lamy ) avec un bouton modifier à coté de chaque enregistrement. En cliquant sur ce dernier j’ouvre le fichier modification 2 qui me dresse une liste de mon enregistrement sélectionné. Je fais la modif dans le champs concerné et je clique sur modifier pour lancer le fichier modification 3 et là je n’ai pas de message d’erreur mais mon enregistrement est vidé de toutes ses données ??? : par cette opération j’ai vidé toutes les données de cet enregistrement mais celui-ci n’est pas effacé


Si quelqu’un peut m’aider ou me donner une autre solution car ce système est bien alors j’aimerai l’utiliser pour mon site
Merci
Voici les 3 fichiers de modification ( en partie) cela fait beaucoup de code mais indispensable pour comprendre le fichier 3 qui est je pense la source d’erreur mais je n’arrive pas trouver laquelle

Fichier modification 1

<?php
//requête SQL:
$sql = "SELECT *
FROM t_images
ORDER BY nom asc" ;

//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;

//affichage des données:
while( $result = mysql_fetch_object( $requete ) )
{
echo("<div align=\"center\">".$result->lamy." <a href=\"modification2.php?idnom=".$result->id_im."\">modifier</a><br>\n") ;
}
?>

Fichier modification 2

<?php

//récupération de la variable d'URL,
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["idnom"] ;
//requête SQL:
$sql = "SELECT *
FROM t_images
WHERE id_im = ".$id ;

//exécution de la requête:
$requete = mysql_query( $sql, $cnx ) ;

//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>
<form name="insertion" action="modification3.php" method="POST">
<!---------------------------------------------------------------------------------------------------->
<!-- champ caché qui va nous servir à 'sauvegarder' l'identifiant de la personne -->
<input type="hidden" name="id" value="<?php echo($id) ;?>">
<!---------------------------------------------------------------------------------------------------->
<table border="0" align="center" cellspacing="2" cellpadding="2">
<tr align="center">
<td>Référence Image </td>
<td><input name="ref image" type="text" id="ref image" value="<?php echo($result->nom) ;?>"></td>
</tr>
<tr align="center">
<td>Référence Agence </td>
<td><input name="ref agence" type="text" id="ref agence" value="<?php echo($result->lamy) ;?>"></td>
</tr>
<tr align="center">
<td>Prix</td>
<td><input name="prix" type="text" id="prix" value="<?php echo($result->cota) ;?>"></td>
</tr>
<tr align="center">
<td>Lieu</td>
<td><input name="lieu" type="text" id="lieu" value="<?php echo($result->embal) ;?>"></td>
</tr>
<tr align="center">
<td>Supperficie</td>
<td><input name="superficie" type="text" id="superficie" value="<?php echo($result->parte) ;?>"></td>
</tr>
<tr align="center">
<td>Année</td>
<td><input name="année" type="text" id="année" value="<?php echo($result->date) ;?>"></td>
</tr>
<tr align="center">
<td>Commentaires</td>
<td><textarea name="commentaires" id="commentaires"><?php echo($result->comment) ;?>
</textarea></td>
</tr>
<tr align="center">
<td colspan="2"><input name="submit" type="submit" value="modifier"></td>
</tr>
</table>
</form>
<?php
}//fin if
?>

Fichier modification 3

<?php
//récupération des valeurs des champs:
//Référence image:
$nom = $_POST["nom"] ;
//Référence agence:
$lamy = $_POST["lamy"] ;
//Prix:
$cota = $_POST["cota"] ;
//Lieu:
$embal = $_POST["embal"] ;
//Année:
$date = $_POST["Année"] ;
//Superficie:
$parte = $_POST["parte"] ;
//Commentaires:
$comment = $_POST["comment"] ;

//récupération de l'identifiant de la personne:
$id = $_POST["id"] ;

//création de la requête SQL:
$sql = "UPDATE t_images
SET nom = '$nom',
lamy = '$lamy',
cota = '$cota',
embal = '$embal',
date = '$date',
parte = '$parte',
comment = '$comment'

WHERE id_im = '$id' " ;

//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;

//affichage des résultats, pour savoir si l'insertion a marchée:
if($requete)
echo("La modification à été correctement effectuée") ;
else
echo("La modification à échouée") ;
?>
A voir également:

1 réponse

Je me permet de répondre même si le message date de plus de 3 ans :) :)

En faite, les <input name="ref agence" correspondent au nom des variables qui vont circuler de page en page. En suite, on les récupères grâce à $lamy = $_POST["lamy"] ; à condition biensur qu'elles portent le même nom. Ce qui n'est pas le cas ici puisque tous les "name" sont différents des "$_POST[]"
0