je teste en ce moment PDO et je me pose une question concernant le crud lors d'un upload l'insert ce passe sans problème mais le delete et update me pose soucis
je passe juste l' id en bindvalue mais il ne supprime pas l'image dans le dossier pour le update ni le delete comment proceder pour ce genre de chose?
je vous met un extrais de mon code.
<?php
# CREATE
if(isset($_POST['creer'])){
$titrel = $_POST['titrel'];
$titrec = $_POST['titrec'];
$description = $_POST['description'];
$histo = $_POST['histo'];
$datepub = $_POST['datepub'];
$images = $_FILES['images'];
// move_uploaded_file($_FILES['images']['tmp_name'], './upload/'.$_FILES['images']['name']);
if ( move_uploaded_file ( $_FILES [ 'images' ][ 'tmp_name' ], './upload/' . $_FILES [ 'images' ][ 'name' ]))
{
$images = './upload/' . $_FILES [ 'images' ][ 'name' ];
$sql = 'INSERT INTO ouvrage (titrel,titrec,description,histo,datepub,images) ';
$sql .= 'VALUES (:titrel, :titrec, :description, :histo, :datepub, :images)';
try {
$create = $db->prepare($sql);
$create->bindValue(':titrel', $titrel, PDO::PARAM_STR);
$create->bindValue(':titrec', $titrec, PDO::PARAM_STR);
$create->bindValue(':description', $description, PDO::PARAM_STR);
$create->bindValue(':histo', $histo, PDO::PARAM_STR);
$create->bindValue(':datepub', $datepub, PDO::PARAM_STR);
$create->bindValue(':images', $images, PDO::PARAM_STR);
if($create->execute()){
echo "<div class='alert alert-success'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<strong>Inserer avec succès</strong>
</div>";
}
} catch (PDOException $e) {
echo "<div class='alert alert-error'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<strong>Erreur insertion dans la base/strong>" . $e->getMessage() . "
</div>";
}
}
}
# UPDATE
if(isset($_POST['edition'])){
$id = (int)$_GET['ouvrageid'];
$titrel = $_POST['titrel'];
$titrec = $_POST['titrec'];
$description = $_POST['description'];
$histo = $_POST['histo'];
$datepub = $_POST['datepub'];
$images = "./upload/" . $_FILES['images']['name'];
$sqlUpdate = 'UPDATE ouvrage SET titrel = ?, titrec= ?,description = ?, histo= ?, images= ?, datepub = ? WHERE ouvrageid = ?';
$datas = array($titrel, $titrec, $description, $histo, $images, $datepub, $id);
try {
$update = $db->prepare($sqlUpdate);
if($update->execute($datas)){
echo "<div class='alert alert-success'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<strong>Modifié avec succès</strong>
</div>";
}
} catch (PDOException $e) {
echo "<div class='alert alert-error'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<strong>Erreur d'édition</strong>" . $e->getMessage() . "
</div>";
}
}
# DELETE
if(isset($_GET['action']) && $_GET['action'] == 'delete'){
$id = (int)$_GET['ouvrageid'];
$images = "./upload/" . $_FILES['images']['name'];//supp image dossier /upload/
unlink("./upload/" . $_FILES['images']['name']);
$sqlDelete = 'DELETE FROM ouvrage WHERE ouvrageid = :ouvrageid, images=:images';
try {
$delete = $db->prepare($sqlDelete);
$delete->bindValue(':ouvrageid', $id, PDO::PARAM_INT);
/*$delete->bindValue(':images', $id, PDO::PARAM_STR);*/
if($delete->execute()){
echo "<div class='alert alert-success'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<strong>Supp avec succès</strong>
</div>";
}
} catch (PDOException $e) {
echo "<div class='alert alert-error'>
<button type='button' class='close' data-dismiss='alert'>×</button>
<strong>Erreur de supp de la base</strong>" . $e->getMessage() . "
</div>";
}
}
si sa marche pour le create cela devrai fonctionner aussi ?lors de l'update sa me modifier bine le chemin dans ma bdd mais pas le fichier
et le delete supprime bine la ligne dans ma base mais pas mon fichier
si quelque pouvez m’expliquer ou sa pêche un grand merci d'avance