Bonjour à tous et à toutes,
Je suis actuellement sur la conception d'un système permettant à un membre la modification d'une de ses publications précédentes.
Mais lorsque je valide la modification, aucune erreur, rien ne se passe ^^', ( pas de modification).
voici mon code :
case "modifier":
$artiste_id = $_SESSION'membre_id'];
$oeuvre_id = isset($_GET's'])?(int) $_GET's']:'';
$query = $bdd->prepare('SELECT oeuvre_id, artiste_id, titre_oeuvre, description_oeuvre, image_oeuvre, oeuvre_categorie, oeuvre_style, date_crea FROM oeuvre_artiste WHERE oeuvre_id=:oeuvre_id AND artiste_id=:artiste_id');
$query->bindValue(':oeuvre_id', $oeuvre_id, PDO::PARAM_INT);
$query->bindValue(':artiste_id', $artiste_id, PDO::PARAM_INT);
$query->execute();
$data = $query->fetch();
?>
<form method="post" action="" enctype="multipart/form-data">';
<div id="encpubldiv"><p class="textesimple"><label for="imageoeuvre">Changer l'image : </label><input type="file" name="image_oeuvre" id="image_oeuvre" class="inputenvoie"/>
(max : 10 Mo)<br /><br /><label><input type="checkbox" name="delete" value="Delete"/>Supprimer l'image</label> actuel : <img src="./images/oeuvres/<?php echo $data'image_oeuvre'] ?>" class="imageoeuvre" alt="image"/></p></div>
<p class="textesimple"><label for="titreoeuvre">Titre de l'oeuvre : </label><input type="text" name="titreoeuvre" id="titreoeuvre" value="<?php echo $data'titre_oeuvre'] ?>" /></p>
<p class="textesimple"><label for="titreoeuvre">Description : </label><textarea name="descriptionoeuvre" id="descriptionoeuvre" cols="40" rows="5"><?php echo $data'description_oeuvre']?></textarea></p>
<div id="encpubldiv"><label for="categorie"><p class="textesimplesans">Catégorie : </label>
<select name="oeuvre_categorie" id="categorie" value="<?php echo $data'oeuvre_categorie'] ?>">
<option value="autre" <?php if("autre"==$data'oeuvre_categorie']){?> selected <?php } ?>>Autre...</option>
<option value="bandedessine" <?php if("bandedessine"==$data'oeuvre_categorie']){?> selected <?php } ?>>Bande dessinée</option>
<option value="peinture" <?php if("peinture"==$data'oeuvre_categorie']){?> selected <?php } ?>>Peinture</option>
<option value="croquis" <?php if("croquis"==$data'oeuvre_categorie']){?> selected <?php } ?>>Croquis</option>
<option value="dessin" <?php if("dessin"==$data'oeuvre_categorie']){?> selected <?php } ?>>Dessin</option>
<option value="graphe" <?php if("graphe"==$data'oeuvre_categorie']){?> selected <?php } ?>>Graphe</option>
</select></p></div>
<div id="encpubldiv"><label for="style"><p class="textesimplesans">Style : </label>
<select name="oeuvre_style" id="style" value="<?php echo $data'oeuvre_style'] ?>">
<option value="autre" <?php if("autre"==$data'oeuvre_style']){?> selected <?php } ?>>Autre...</option>
<option value="abstrait" <?php if("abstrait"==$data'oeuvre_style']){?> selected <?php } ?>>Abstrait</option>
<option value="arturbain" <?php if("arturbain"==$data'oeuvre_style']){?> selected <?php } ?>>Art urbain</option>
<option value="baroc" <?php if("baroc"==$data'oeuvre_style']){?> selected <?php } ?>>Baroc</option>
<option value="cubisme" <?php if("cubisme"==$data'oeuvre_style']){?> selected <?php } ?>>Cubisme</option>
<option value="dadaisme" <?php if("dadaisme"==$data'oeuvre_style']){?> selected <?php } ?>>Dadaisme</option>
<option value="expressionnisme" <?php if("expressionnisme"==$data'oeuvre_style']){?> selected <?php } ?>>Expressionnisme</option>
<option value="fauvisme" <?php if("fauvisme"==$data'oeuvre_style']){?> selected <?php } ?>>Fauvisme</option>
<option value="futurisme" <?php if("futurisme"==$data'oeuvre_style']){?> selected <?php } ?>>Futurisme</option>
<option value="gothisme" <?php if("gothique"==$data'oeuvre_style']){?> selected <?php } ?>>Gothisme</option>
<option value="hyperrealisme" <?php if("hyperrealisme"==$data'oeuvre_style']){?> selected <?php } ?>>Hyperrealisme</option>
<option value="impressionnisme" <?php if("impressionnisme"==$data'oeuvre_style']){?> selected <?php } ?>>Impressionnisme</option>
<option value="rococo" <?php if("rococo"==$data'oeuvre_style']){?> selected <?php } ?>>Rococo</option>
<option value="romantisme" <?php if("romantisme"==$data'oeuvre_style']){?> selected <?php } ?>>Romantisme</option>
<option value="lettrisme" <?php if("lettrisme"==$data'oeuvre_style']){?> selected <?php } ?>>Lettrisme</option>
<option value="modernisme" <?php if("modernisme"==$data'oeuvre_style']){?> selected <?php } ?>>Modernisme</option>
<option value="naturalisme" <?php if("naturalisme"==$data'oeuvre_style']){?> selected <?php } ?>>Naturalisme</option>
<option value="neoclassicisme" <?php if("neoclassicisme"==$data'oeuvre_style']){?> selected <?php } ?>>Néoclassicisme</option>
<option value="neogothique" <?php if("neogothique"==$data'oeuvre_style']){?> selected <?php } ?>>Néogothique</option>
<option value="pointillisme" <?php if("pointillisme"==$data'oeuvre_style']){?> selected <?php } ?>>Pointillisme</option>
<option value="popart" <?php if("popart"==$data'oeuvre_style']){?> selected <?php } ?>>Popart</option>
<option value="photorealisme" <?php if("photorealisme"==$data'oeuvre_style']){?> selected <?php } ?>>Photoréalisme</option>
<option value="postimpressionnisme" <?php if("postimpressionnisme"==$data'oeuvre_style']){?> selected <?php } ?>>Postimpressionnisme</option>
<option value="punk" <?php if("punk"==$data'oeuvre_style']){?> selected <?php } ?>>Punk</option>
<option value="surrealisme" <?php if("surrealisme"==$data'oeuvre_style']){?> selected <?php } ?>>Surréalisme</option>
<option value="symbolisme" <?php if("symbolisme"==$data'oeuvre_style']){?> selected <?php } ?>>Symbolisme</option>
</select></p></div>
<p class="textesimple"><label for="datecreaoeuvre">Date de création : </label><input type="text" name="datecreaoeuvre" id="descriptionoeuvre" value="<?php echo $data'date_crea'] ?>"/></p>
<p class="classinscr"><input type="submit" id="sent" name="sent" value="envoyer" class="inputenvoie"/>
</p></form>
<?php
if (isset($_POST'sent']))
{
if (isset($_FILES'image_oeuvre']))
{
$imageoeuvre=$_FILES'image_oeuvre']'name'];
$ext = strtolower(pathinfo($imageoeuvre,PATHINFO_EXTENSION));
$allow_ext = array('jpg','png','gif','bmp','jpeg');
if (!empty($imageoeuvre))
{
if (in_array($ext,$allow_ext))
{
$destination ="./images/oeuvres/".$imageoeuvre;
move_uploaded_file($_FILES'image_oeuvre']'tmp_name'],$destination);
}
else
{
echo '<p class="texteerror">'."Votre fichier contient une mauvaise extension, ou n'est pas une image.".'</p>';
}
}
}
$titreoeuvre=$_POST'titre_oeuvre'];
$descriptionoeuvre=$_POST'description_oeuvre'];
$categorie=$_POST'oeuvre_categorie'];
$style=$_POST'oeuvre_style'];
$datecreaoeuvre=$_POST'date_crea'];
if ( (!empty($imageoeuvre)) OR (!empty($titreoeuvre)) OR (!empty($descriptionoeuvre)) OR (!empty($categorie)) OR (!empty($style)) OR (!empty($datecreaoeuvre)) )
{
try {
$query2 = $bdd->prepare('UPDATE oeuvre_artiste SET image_oeuvre=:image_oeuvre, titre_oeuvre=:titre_oeuvre, description_oeuvre=:description_oeuvre, oeuvre_categorie=:oeuvre_categorie, oeuvre_style=:oeuvre_style, date_crea=:date_crea');
$query2->bindValue(':image_oeuvre', $imageoeuvre, PDO::PARAM_STR);
$query2->bindValue(':titre_oeuvre', $titreoeuvre, PDO::PARAM_STR);
$query2->bindValue(':description_oeuvre', $descriptionoeuvre, PDO::PARAM_STR);
$query2->bindValue(':oeuvre_categorie', $categorie, PDO::PARAM_STR);
$query2->bindValue(':oeuvre_style', $style, PDO::PARAM_STR);
$query2->bindValue(':date_crea', $datecreaoeuvre, PDO::PARAM_INT);
$query2->execute();
}
catch (Exception $e)
{
echo 'Erreur : ' . $e->getMessage();
}
echo '<p class="textevalide">'."Votre modification à bien été effectué !".'</p>';
}
}
$query->CloseCursor();
break;
Je ne situe pas l'erreur que j'aurais pu effectué :/.
Merci pour votre attention et votre aide.
Tout d'abord bonjour effectivement j'ai zapé la politesse je pourrai me taper ! :)
Pour le fait que tu update et que ça vire tout je pense que c'est normal car dans ton update je ne voit pas de WHERE donc il update sur toute la base sans précision.
Rajoute un where id=id ou je ne sais quoi ça devrait le faire ! :)
Pas de problème pour l'aide ;)
Salut à toi =) et merci pour ton attention et ton aide :D,
Arrff effectivement ^^' un oublie assez bête qui peut empêcher le fonctionnement x).
Merci :D
Une fois après avoir effectué ce rajout, j'ai retenté une modification connecté sous session test "x" d'un membre avec laquelle ( de session membre ^^ ) j'avais précédemment effectué 3 publications.
Lorsque j'ai voulu valider la modification d'une de ses 3 œuvres, toutes les informations on été effacées, y compris les infos des autres "fiche" qui n'aurait même pas du être affecté, du à un système de sélection de l'oeuvre à modifier ( un autre code encore )
Mais je pense que l'erreur vient forcément de mon switch case : modifier ( le code copier coller ci-dessus )
Pour ma requête de modification,
est-il préférable de d'y ajouter tout les champs de ma table dans ma bdd oeuvre_artiste ( artiste_id, et oeuvre_id qui n'on pas spécialement besoin d'être modifier, puisque l'id est censé rester le même ^^)
Il me semble avoir déjà rencontré un soucis semblable pour la modification du profil membre, mais étant sur le développement de ce site depuis plus d'un ans ^^' ma mémoire me joue quelques défaut
Merci encore pour ton attention et ton aide,
Sincèrement.
Re,
Merci vraiment !! ça fonctionne :D.
Je ne voudrais pas abuser de ton attention ^^ mais j'ai encore un petit soucis concernant l'image oeuvre ^^.
Lorsque je souhaite modifier une publication sous le membre "x" pour y modifier par exemple juste le Titre,
et que je valide la modification, ( sans avoir changé l'image ) elle est remplacé par une image vide ^^'.
Faut-il créer une requête séparé pour l'image, que j'insère dans ma condition :
if ($_FILES'image_oeuvre']'name']!=NULL) */si les information du post formulaire image ne sont pas vide, alors accès a la modif image*/
{
$imageoeuvre=$_FILES'image_oeuvre']'name'];
$ext = strtolower(pathinfo($imageoeuvre,PATHINFO_EXTENSION));
$allow_ext = array('jpg','png','gif','bmp','jpeg');
if (!empty($imageoeuvre))
{
if (in_array($ext,$allow_ext))
{
$destination ="./images/oeuvres/".$imageoeuvre;
move_uploaded_file($_FILES'image_oeuvre']'tmp_name'],$destination);
}
else
{
echo '<p class="texteerror">'."Votre fichier contient une mauvaise extension, ou n'est pas une image.".'</p>';
}
}
Merci pour ton temps et ton aide :).