Я пытаюсь создать back-end для моей фотогалереи, чтобы мне было легче загружать изображения в галерею.
Галерея состоит из миниатюрного изображения, описания одной строки и миниатюры подключается к причудливому боксу. Довольно простой. (Изображение эскиза и причудливого окна используют одно и то же изображение.)
Я только начинаю изучать основы PHP и MySQL и хотел бы знать, как я могу использовать этот код: (FYI это только часть галереи.)
<li data-id="id-12" data-type="treeremoval"> <div class="column grid_3"> <a class="fancybox" rel="treeremoval" href="images/gallery/1.jpg" title="Tree Removal Lake of the Ozarks"> <img src="images/gallery/1.jpg" alt="Tree Removal Lake of the Ozarks" class="max-img-border"></a> <h5>Lake of the Ozarks Tree Removal </h5> </div> </li> <li data-id="id-11" data-type="treetrimming"> <div class="column grid_3"> <a class="fancybox" rel="treetrimming" href="images/gallery/2.jpg" title="Osage Beach Tree Trimming"> <img src="images/gallery/2.jpg" alt="Osage Beach Tree Trimming" class="max-img-border"></a> <h5>Lake of the Ozarks Tree Trimming</h5> </div> </li>
и создать административную систему, чтобы я мог загружать изображения в галерею без необходимости вручную вводить и настраивать код каждый раз, когда клиент отправляет мне изображение.
В основном, я хочу создать форму, где я могу установить параметры и загрузить изображения (ы) на страницу галереи.
Используя приведенный выше код, как я могу добавить больше изображений в список?
Я предполагаю, что я спрашиваю, как настроить базу данных и таблицу и добавить соответствующий синтаксис php в html, чтобы получить результаты, которые я ищу?
Я понимаю, как создать форму для загрузки изображений в каталог ftp. Я просто потерял настройку базы данных и таблиц, чтобы получить изображения и текст и поместить их в галерею
Я бы установил базу данных так? (FYI, я понятия не имею, что я делаю в этой точке.)
Название базы данных: maingallery
Таблица: идентификатор данных: id по возрастанию
(Идентификатор данных и тип данных очень важны, поскольку галерея подключена к системе фильтрации. Мне бы хотелось, чтобы идентификатор данных был автоматически сгенерирован и добавлял новейшее изображение в верхнюю часть галереи.)
тип данных: treetrimming
тип данных: treeremoval
rel: gallery1
rel: gallery2
изображение: … ???
название: Дерево Удаление Озеро Озаркс
название: Osage Beach Tree Trimming
Затем для тега h5
Заголовок: Озеро Озарского дерева
Подпись: Озеро Озракса
Для изображений я использую класс max-img-border, потому что сайт реагирует, и у меня есть все изображения размером до 720px x 482px
Css выглядит так:
.max-img-border { width:100%; height:auto; border:solid 2px #FFFFFF; margin-bottom:10px; }
Используя этот метод, я настроил его, поэтому мне нужно иметь дело только с одним изображением для эскиза и изображения fancybox.
Я надеюсь, что то, что я прошу, имеет смысл.
Я знаю, о чем я прошу, вероятно, много объяснять, но любая помощь будет очень признательна. Даже некоторые ссылки на хороший учебник могут помочь. Я искал Google в течение дня или двух, но не могу найти именно то, что я ищу.
Также, если вы посмотрите на галерею и перетасовываете по категориям, есть большой прыжок в процессе перехода. В настоящее время я работаю над исправлением этого.
Если вам нужна дополнительная информация от меня, пожалуйста, дайте мне знать, и я буду более чем готов ее предоставить.
Спасибо!
Вам понадобится таблица MySQL, содержащая информацию об изображении, и имя файла изображения:
CREATE TABLE images ( id int(3) not null auto_increment, data_type varchar(128) not null, title varchar(256) not null, file_name varchar(64) not null, primary key(id) )
И вам нужно будет сделать форму загрузки изображения, что-то вроде этого:
<form enctype="multipart/form-data" action="uploader.php" method="POST"> Data type: <input type="text" name="dataType"><br> Title: <input type="text" name="title"><br> Image to upload: <input type="file" name="image"><br> <input type="submit" value="Upload"> </form>
И PHP-скрипт для обработки загруженных файлов и добавления записей в базу данных:
uploader.php
<?php $dataType = mysql_real_escape_string($_POST["dataType"]); $title = mysql_real_escape_string($_POST["title"]); $fileName = basename($_FILES["image"]["name"]); $target_path = "images/gallery/".$fileName); if (file_exists($target_path)) { echo "An image with that file name already exists."; } elseif (move_uploaded_file($_FILES["image"]["tmp_name"], $target_path)) { // The file is in the images/gallery folder. Insert record into database by // executing the following query: // INSERT INTO images // (data_type, title, file_name) VALUES('$dataType','$title','$fileName') echo "The image was successfully uploaded and added to the gallery :)"; } else { echo "There was an error uploading the file, please try again!"; } ?>
Обратите внимание, что этот скрипт небезопасен, он позволит пользователям загружать на сервер файлы .php. Что-то вроде этого будет необходимо:
$allowed_extensions = array("jpg","jpeg","png","gif"); $extension = pathinfo($fileName, PATHINFO_EXTENSION); if (!in_array($extension,$allowed_extensions)) { die("Only these file types are allowed: jpg, png, gif"); }
Теперь на странице галереи вы захотите просмотреть изображения в базе данных.
<?php $images = mysql_query("SELECT * FROM images"); while ($image=mysql_fetch_assoc($images)) { ?> <li data-id="id-<?=$image["id"] ?>" data-type="<?=$image["data_type"] ?>"> <div class="column grid_3"> <a class="fancybox" rel="<?=$image["data_type"] ?>" href="images/gallery/<?=$image["file_name"] ?>" title="<?=$image["title"] ?>"> <img src="images/gallery/<?=$image["file_name"] ?>" alt="<?=$image["title"] ?>" class="max-img-border"></a> <h5><?=$image["title"] ?></h5> </div> </li> <?php } ?>
Обратите внимание, что форма загрузки должна быть защищена и доступна только нужным людям. Вы не хотите, чтобы спамеры загружали случайные файлы на ваш сервер.