Измените PHP для получения URL-адресов изображений из базы данных MySQL вместо TXT-файла - PullRequest
0 голосов
/ 24 октября 2011

Я очень новичок в MySQL (только начал сегодня) - я переключаюсь с использования файлов .txt.В настоящее время я использую скрипт PHP, который получает ссылки на изображения из файла .txt и загружает их в виде слайд-шоу, в зависимости от того, на какой странице вы находитесь с нумерацией страниц.

Мне удалось настроить работу разбивки на страницы, которая отображает содержимое из таблицы базы данных.Я просто не знаю, как добавить изображения, чтобы они менялись вместе с нумерацией страниц?Как связать несколько изображений с содержимым, с которым они работают (например, динамически создаваемая страница 1 получает данные из строки таблицы и имеет 5 изображений, которые загружаются в виде слайд-шоу)?: S

текущий скрипт с использованием файла .txt:

<?php
    echo "<div id='portfolioslider'><div class='slider'>";
    $photos=file("work.txt");
    foreach($photos as $image){
        $item=explode("|",$image);
        if($item[0]==$fields[0]){
            $photo=trim($item[1]);
            echo"<div><img src='images/work/$photo' alt='' /></div>\n";
        }
    }
    echo "</div></div>"
?>

Ответы [ 2 ]

2 голосов
/ 24 октября 2011

для этого я бы использовал три таблицы SQL (из-за нормализации), мы делаем это так, чтобы в MySQL не было дублирования данных, таблица photos имеет отношение много: 1 с pages (то есть есть несколько фотографийбыть связанными с одной страницей, хотя мы не хотим дублировать идентификатор фотографии в таблице страниц несколько раз. Также мы не хотим добавлять несколько идентификаторов страниц в таблицу фотографий. Поэтому мы используем третью таблицу location, чтобы связатьсоедините их вместе и нормализуйте базу данных.

table 1 (photos): 
    columns: photo_id(p-key), filename
    (maybe further fields such as description, alt, etc.)

table 2 (pages): 
    columns: page_id(p-key), page_info

table 3 (location): 
    columns: unique_key(p-key), page_id, photo_id

ПРИМЕЧАНИЕ. Таблица 3 является ЕДИНСТВЕННОЙ таблицей, которая может иметь дублированные данные, т.е.

unique_key        page_id        photo_id
1                 1              1
2                 1              2
3                 1              3
4                 2              6
5                 2              7
6                 2              8

Таким образом, вы сохраняете данные в двух таблицах, которыефактически содержат данные, полностью свободные от любого дублирования, что позволяет вам добавить столько дополнительных полей к каждой строке, сколько вам потребуется.

Не забывайте, что правила нормализации применяются к каждому полю. Если вы вводитеновый столбец в photos и осознайте, что новый столбец можно применить к нескольким фотографиям, пришло время начать смотреть на новую таблицу дляr этот столбец и таблица нормализации, чтобы минимизировать дублирование.

Исключений из этого правила очень мало, следуя ему, можно значительно упростить определение приложений баз данных SQL в PHP.

Теперь мы можем использовать серию запросов SQL из PHP, чтобы получить точноеИнформация, которая вам нужна на странице.Мы знаем, на какой странице мы находимся, поэтому мы удостоверимся, что page_id соответствует странице, на которой мы находимся, и получим все ассоциированные photo_id с location

$connect = mysql_connect(HOST,USER,PASS) or die(mysql_error());

$query = mysql_query(
         "SELECT location.photo_id WHERE location.page_id=" . $page, $connect) or die(mysql_error());

while ($row = mysql_fetch_array($query, MYSQL_ASSOC) {
    $images[] = $row['photo_id'];
}

Теперь вы можете использовать цикл foreach для циклического переключениячерез массив $ images и захватите URL-адреса фотографий

foreach ($images as $image) {

    $query = mysql_query(
             "SELECT filename FROM `photos` WHERE photo_id =" . $image, $connect) or die(mysql_error());

    $image_loc[] = mysql_fetch_row($query); // only one row should exist now!

}

У вас есть числовой массив $ image_loc, который содержит все ссылки на изображения, связанные со страницей, на которой вы находитесь.

Итак, вы идете, быстрый ускоренный курс по нормализации базы данных и как настроить таблицы SQL!:)

Удачного кодирования!(Я написал здесь весь код вручную, прошу прощения за любые глупые ошибки!)

0 голосов
/ 24 октября 2011

слушайте, вам нужно распечатать все ваши изображения и поместить их в скрытом виде, кроме первых 5.

, после чего вы печатаете ссылки / номера нумерации страниц (1,2,3 ...) и каждый клик будет меняться для отображения статуса с помощью jquery

...