У меня возникли проблемы с удалением изображений из базы данных mysql с использованием php. Добавление изображений в базу данных отлично работает, и оно будет отображать/удалять изображения без проблем, но не удалит их должным образом. Он не удаляет выбранное изображение, всегда первое в базе данных. Я тестировал его с использованием определенных имен файлов и идентификаторов, поэтому я знаю, что он работает, он просто не нацелен на выбранный образ.Галерея изображений базы данных PHP/MySQL Удаление
Таблица галереи состоит из: id, imagename, assoc_table (category) & assoc_object (page-image-is-attach-to).
Надеюсь, что это имеет смысл и большое спасибо заранее.
Это код, который используется для добавления и отображения изображений:
$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'].'" alt="'.$galleryResult['id'].'" width="120" height="120" class="image" /><br />
<label for="delGallery"><input type="checkbox" name="delGallery" value="1" /> Delete this image?</label><br />
</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).'
Это код, который используется для удаления из базы данных:
if ($_POST['delGallery']=='1') {
file_exists($galleryFileDir.'/'.$_POST['imagename']) ? unlink($galleryFileDir.'/'.$_POST['imagename']) : NULL;
unset($_POST['imagename']);
$sql = "DELETE FROM isgallery WHERE imagename = '".$_POST['imagename']."'";
mysql_query($sql);
}
вам нужно, чтобы предотвратить SQL-инъекции в ваш код –
Замечание: использование базы данных для хранения изображений не очень удобное решение. Почему бы вам не сохранить изображение на своем сервере и сохранить только адрес в базе данных? – Evert
+1 для Эверта. Это плохая идея хранить файлы в базе данных, хранить там путь. – Chris