Comment faire UPDATE PHP sauf images
stefart
Messages postés
33
Date d'inscription
Statut
Membre
Dernière intervention
-
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
A voir également:
- Comment faire UPDATE PHP sauf images
- Windows update bloqué - Guide
- Winget update - Guide
- Asus live update - Télécharger - Utilitaires
- Des images - Guide
- Easy php - Télécharger - Divers Web & Internet
2 réponses
Bonjour.
Un petit exemple - que tu peux généraliser à toutes tes variables...
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 :
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.' " ;
//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.' " ;
Mais je vois pas bien comment avec cette méthode je pourrai faire un UPDATE sans modifier le champ img
Je suis loin d'êtres un pro en PHP
tu peux me guider davantage stp