Gestion des images : Modification/Suppression des images d'une BDD depuis une page Web
Bonjour,
Je souhaite pourvoir gérer mes images : modification/suppression depuis une page web de la même façon que pour gérer des articles, mais je n'y arrive pas.....J'upload une image qui est enregistrée dans ma bdd et qui est envoyée vers un fichier. Je récupère les infos sous forme de liste, mais quand je veux récupérer l'image et sa légende pour les modifier je n'y arrive pas...
J'ai débuger ma variable edit_id qui récupère bien les infos de la base de donnée, mais les infos se s'affichent pas, même pas la légende, si quelqu'un à compris mon charabia et peux 'aider.
Sur ma page Adminimage, j'ai le formulaire pour uploader une image, j'ai la liste de toutes mes images également, voici le code :
Pour mon formulaire avec le mode édition pour récupérer des données
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| <?php
require_once('../inc/functions.php');
require_once('../inc/bdd.php');
$images = getImages();
?>
<?php
//Enregistrement nouvelles images quand le mode édition est égal à 0
$mode_edition = 0;
//Modification d'images, on vérifie qu'il y a du contenu venant de la page adminimage
if(isset($_GET['edit_image']) AND !empty($_GET['edit_image']))
{
//Edition articles : on va rechercher dans la table articles toutes les informations
$mode_edition = 1;
$edit_id = ($_GET['edit_image']);
$req = $bdd->prepare('SELECT * FROM images WHERE id = ?' );
$req->execute(array($edit_id));
if($req->rowCount() == 1)
{
$edit_image = $req->fetch();
}else{
die('Erreur : l\'image concernée n\'existe pas...');
}
}
// Initialize message variable
$message = "";
// Si le formulaire est envoyé
if(isset($_POST['upload']))
{ //on vérifie qu'il ne soit pas vide
if(!empty($_FILES['image']) AND !empty($_POST['legende']))
{
// Get image name
$image = $_FILES['image']['name'];
// Get text
$legende = $_POST['legende'];
// image file directory
$target = "../images/".basename($image);
//Si le mode édition est à 0, c'est une nouvelle image à enregistrer
if($mode_edition == 0){
//Requete préparée pour l'insertion dans la bdd
$insImage = $bdd->prepare('INSERT INTO images (image, legende) VALUES (?, ?)');
$insImage->execute(array($image, $legende));
//Si l'image uploader est déplacée vers le dossier cible
if (move_uploaded_file($_FILES['image']['tmp_name'], $target))
{
$message = "Image enregistrée avec succès";
}else{
$message = "Une erreur s'est produite";
}
}else{
//Sinon c'est un mode édition = 1, qui est une modification d'image
//On va chercher les données qui sont à modifier par une requête préparée
$update = $bdd->prepare('UPDATE images SET image = ?, legende = ? WHERE id = ?');
$update->execute(array($image, $legende, $edit_id));
$message = 'Votre image à bien été mise à jour';
}
}else{
$message = "Veuillez remplir tous les champs";
}
}
?> |
Après j'affiche les infos de ma bdd avec images par ce code
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| <table>
<caption>Liste des images inclues dans la base de données</caption>
<tr>
<th>Nom du fichier</th>
<th>Image</th>
<th>Légende</th>
<th>Modifier</th>
<th>Supprimer</th>
</tr>
<?php
foreach ($images as $image): ?>
<tr>
<td><?= $image->image ?></td>
<td><img src="../images/<?php echo $image->image; ?>" alt="" /></td>
<td><?= $image->legende ?></td>
<td><?= $image->dateImage ?></td>
<td> <a href="adminimage.php?edit_image=<?= $image->id ?>">Modifier</a>
</td>
<td>
<a href="supprimer.php?edit_image=<?= $image->id ?>">Supprimer</a></td>
</tr>
<?php endforeach; ?>
</table> |
Merci