Comment faire UPDATE PHP sauf images
stefart
Messages postés
33
Statut
Membre
-
Frey -
Frey -
Bonjour,
J'ai un formulaire en PHP qui fais un UPDATE de donnée dans ma base MySql.
Le problème c'est que lorsque je fais une mise a jour via se form le champ image est systématiquement écrasé et donc suppr l'image dans la base de donnée.
comment faire alors pour ne mettre a jour se champ image qui si je le renseigne a nouveau ??
voici le code du formulaire :
et le code de la page d'UPDATE :
y'a sans doute une condition a mettre dans le code PHP de l'UPDATE mais ça je c pas faire !
Merci de votre aide et de vos conseils
--
--
J'ai un formulaire en PHP qui fais un UPDATE de donnée dans ma base MySql.
Le problème c'est que lorsque je fais une mise a jour via se form le champ image est systématiquement écrasé et donc suppr l'image dans la base de donnée.
comment faire alors pour ne mettre a jour se champ image qui si je le renseigne a nouveau ??
voici le code du formulaire :
<form enctype="multipart/form-data" action="modif2.php" method="post" name="modif" id="modif">
<?php
//qui va nous permettre de savoir quel enregistrement modifier
$id = $_GET["id_annonce"] ;
//requête SQL:
$sql = "SELECT * FROM annonces WHERE id_annonce=".$id_annonce;
//exécution de la requéte:
$requete = mysql_query( $sql, $cnx ) ;
//affichage des données:
if( $result = mysql_fetch_object( $requete ) )
{
?>
<input type="hidden" name="id_annonce" id="id_annonce" value="<?php echo($result->id_annonce) ;?>"/>
Annonce en date du <?php echo($result->date_saisie) ;?>
Titre :
<input name="titre" id="titre" type="text" size="80" value="<?php echo($result->titre) ;?>"/>
Marque :
<input name="marque" id="marque" type="text" size="80" value="<?php echo($result->marque) ;?>"/>
Themes :
<select name="themes" id="themes">
<option value="Ordinateur" selected="selected"><?php echo($result->themes) ;?></option>
</select>
Prix
<input name="prix" id="prix" type="text" size="10" value="<?php echo($result->prix) ;?>"/>€
Quantité ;
<input name="quantite" id="quantite" type="text" size="10" value="<?php echo($result->quantite) ;?>"/>
Etat :
<input name="etat" id="etat" type="text" size="10" value="<?php echo($result->etat) ;?>"/>
code barre :
<input name="codebarre" id="codebarre" type="text" size="20" value="<?php echo($result->codebarre) ;?>"/>
Image :
<img src="../img/<?php echo($result->img) ;?>"><br />
<input type="hidden" name="MAX_FILE_SIZE" value="200000" />
<input name="maphoto" type="file" id="maphoto" value="../img/<?php echo($result->img);?>"/>
<input name="submit" type="submit" value="modifier" />
</form>
et le code de la page d'UPDATE :
<?php
//récupération des valeurs des champs:
$titre = $_POST["titre"] ;
$marque = $_POST["marque"] ;
$themes = $_POST["themes"] ;
$prix = $_POST["prix"] ;
$codebarre = $_POST["codebarre"] ;
$quantite = $_POST["quantite"] ;
$etat = $_POST["etat"] ;
// définition de l'espace destiné à recevoir les fichiers
$repository="../img/";
// si un fichier maphoto a bien été transféré
if (is_uploaded_file($_FILES["maphoto"]["tmp_name"])) {
// recupération de l'extension du fichier
// autrement dit tout ce qu'il y a après le dernier point (inclus)
$nomPhoto = $_FILES["maphoto"]["name"];
$extension = substr($nomPhoto, strrpos($nomPhoto, "."));
// Contrôle de l'extension du fichier
if (eregi("^ph", $extension)) {
die("Les fichiers en .ph* ne sont pas autorisés.");
}
$cheminPhoto = $id_annonce . "_photo" . $extension;
move_uploaded_file($_FILES["maphoto"]["tmp_name"], $repository.$cheminPhoto);
}
//récupération de l'identifiant de la fiche :
$id_annonce = $_POST["id_annonce"] ;
//création de la requête SQL:
$sql = "UPDATE annonces SET titre = '$titre', marque = '$marque', themes = '$themes', prix = '$prix', codebarre = '$codebarre', quantite = '$quantite', etat = '$etat', img = '$cheminPhoto' WHERE id_annonce = '$id_annonce' " ;
//exécution de la requête SQL:
$requete = mysql_query($sql, $cnx) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("<img src='../img/ok.gif'><p>La modification de l'annonce à été correctement effectuée</p><a href='annonce.php'>Retour</a>") ;
}
else
{
echo("<img src='../img/warning.gif'><p>La modification à échouée </p>") ;
}
?>
y'a sans doute une condition a mettre dans le code PHP de l'UPDATE mais ça je c pas faire !
Merci de votre aide et de vos conseils
--
--
Configuration: Windows XP Firefox 2.0.0.14
2 réponses
-
Bonjour.
Un petit exemple - que tu peux généraliser à toutes tes variables...
//création de la requête SQL: $sql = "UPDATE annonces SET titre = '$titre', marque = '$marque', themes = '$themes', prix = '$prix', codebarre = '$codebarre', quantite = '$quantite', etat = '$etat'"; if ($cheminPhoto <> '') { $sql .= ", img = '$cheminPhoto'"; } $sql = " WHERE id_annonce = '$id_annonce' " ;
Par contre, dans ce cas (et de manière générale dans tous les cas) il vaut mieux initialiser ta variable qu début de ton code :$cheminPhoto = "";
-
essaye ca :
//création de la requête SQL:
$sql = "UPDATE annonces SET titre = '.$titre.', marque = '.$marque', themes = '.$themes.', prix = '.$prix.', codebarre = '.$codebarre.', quantite = '.$quantite.', etat = '.$etat.'";
if ($cheminPhoto <> '') {
$sql .= ", img = '.$cheminPhoto.'";
}
$sql = " WHERE id_annonce = '.$id_annonce.' " ;