У меня есть галерея изображений, где пользователи будут загружать изображения со своих телефонов в базу данных, которая затем вызывается на моей странице галереи. Каждая запись имеет идентификатор, изображение и описание в БД.
Это код, который экспортирует галерею:
//include database connection
include 'mysqlconnect.php';
$sql="select * from images order by image desc";
$query=mysql_query($sql);
while($row=mysql_fetch_array($query))
{
$image=$row ['image'];
$description=$row ['description'];
//call all images from DB
echo '<a href="'.$image.'" title="'.$description.'" style="background-image:url('.$image.');"></a>';
}
Проблема в том, когда пользователь загружает фотографии с iPhone. Поскольку айфоны всегда сохраняют свои изображения как «image.jpg», при каждой загрузке они перезаписывают предыдущие изображения iPhone в галерее. Я думаю, что это потому, что галерея требует только имена файлов.
Есть ли способ вызвать изображения на основе их идентификатора строки? Что-то вроде $image=$row['id','image'];
?
Во-первых, если загружается одно и то же имя изображения, и вы не предусмотрели его переименование или использовали отличительную папку, чтобы использовать их как уникальные, то это проблема прямо сейчас.
Если вы хотите просмотреть фотографию на основе идентификатора, используйте ее в своем запросе.
т.е .:
$sql="select * from images WHERE id='some_id' order by image desc";
«Есть ли способ вызвать изображения на основе их идентификатора строки? Что-то вроде $ image = $ row [‘id’, ‘image’];?»
Нет, это неверный синтаксис:
$image=$row['id','image'];
Вам нужно будет использовать два отдельных $row(s)
,
т.е .:
$id = $row['id'];
$image=$row['image'];
Sidenote: Вам может даже не понадобиться WHERE
пункт, и просто используйте $row['id']
,
Однако, если вы настроены на отображение изображений только для определенного пользователя, тогда да; использовать WHERE
предложение и даже использование сессий на основе их имени пользователя сеанса.
Переименовать загруженные файлы:
Посмотрите, как использовать уникальное имя при загрузке:
Вы также используете устаревшую библиотеку MySQL. Лучше всего вы перейдете к любому mysqli_
или PDO, так как он будет удален из будущих версий PHP.
Рекомендации:
Других решений пока нет …