I have a php script that handles the admin section/creation of pages for my site. All of the data is saved into a database table called ‘isadmin’. Within this script I have an image upload form which adds images to a seperate database, ‘isgallery’ and then displays them back in the script/admin section. Now this all works great, but I’m finding it impossible to then delete any of the images. I know it will delete them, but I can’t seem to get the id of the image to be added to mysql delete call. It just doesn’t seem to exist outside of the while statement. (There seems to be an issue recognising $_POST[‘imagename’] once the images are added arrrghhh!).
Code below and any help greatly appreciated. S.
This is the code that deletes:
if ($_POST['delGallery']=='1') {
$sql = "DELETE FROM isgallery WHERE id = ".mysql_real_escape_string($_POST['isgallery_id']);
mysql_query($sql);
//file_exists($galleryFileDir.'/'.$_POST['imagename']) ? unlink($galleryFileDir.'/'.$_POST['imagename']) : NULL;
//unset($_POST['imagename']);
}
This is the code to display and add the images:
$galleryQuery=mysql_query("select * from isgallery where assoc_object = '".$_POST['id']."'");
echo '<ul class="gallery">'. PHP_EOL;
while($galleryResult=mysql_fetch_array($galleryQuery)) {
echo '<li><img src="../../images/properties/gallery/'.$galleryResult['imagename'].'" width="120" height="120" class="image" /><br />
<label for="delGallery"><input type="checkbox" name="delGallery" value="1" /> Delete this image?</label><br />
<p>'.$galleryResult['id'].'</p>
<input type="hidden" name="isgallery_id" value="'.$galleryResult['id'].'" />
</li>
'. PHP_EOL;
}
echo '</ul><br /><br />' . PHP_EOL;
echo '<label for="galleryFile">Add Image (*.jpg / *.gif): </label><input type="file" name="galleryFile" value=""><br />
'.($_POST['imagename'] ? '
<label for="imagename"></label><img src="../../images/properties/gallery/'.$_POST['imagename'].'" width="120" class="image"><br />
<label for="delGallery"></label><input type="checkbox" name="delGallery" value="1" style="margin:0 0 0 7px;"> Delete this image?<br />
' : NULL).'
In your display code, place
$galleryResult['id']in your form:Then, in your delete code:
Notes:
For deleting the file, the file name should be stored in the isgallery table. Grab the name from the record’s id. Don’t rely on a user supplied file name.
For clarity, my example code performs little or no data validation/sanitizing. Be sure to verify and escape data being inserted into your database.