как получать и выводить изображения из нескольких столбцов с помощью php и mysql?

ОБНОВИТЬ:

У меня есть десять столбцов в моей таблице SQL: id, imgid, urlid, image1, image2, image3, image4, image5 и comment. Id, imgid и urlid имеют тип int. Изображения [1-5] относятся к типу средних кляксов. URL и комментарий имеют текстовый тип. Imgid - это количество загруженных изображений (должно быть 5), urlid - это количество отправленных URL (сейчас должно быть один), url содержит URL, а comment - комментарии пользователей. Я хотел бы получить и вывести все данные изображения из столбцов изображений в строке, но у меня появляются разорванные значки страниц. Я использую front.php для вывода изображений и get.php для преобразования изображений в видимый формат.

Вот мой front.php:

<?php

mysql_connect ("","","") or die(mysql_error());
mysql_select_db ("") or die(mysql_error());



$defaultqry = mysql_query ("SELECT * FROM dbp");

while($row = mysql_fetch_assoc($defaultqry))
{



echo ($row['image1'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=1 " width="30" height="30"/> ' : '';
echo ($row['image2'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=2 " width="30" height="30"/> ' : '';
echo ($row['image3'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=3 " width="30" height="30"/> ' : '';
echo ($row['image4'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=4 " width="30" height="30"/> ' : '';
echo ($row['image5'] != NULL) ? '<img src="get.php?id='.$row[id].'&col=5 " width="30" height="30"/> ' : '';

}
?>

Вот мой get.php:

<?php

mysql_connect ("","","") or die(mysql_error());
mysql_select_db ("") or die(mysql_error());


$query = mysql_query("SELECT * FROM dbp WHERE id = ".mysql_real_escape_string($_GET['id']));
$row = mysql_fetch_array($query);

$col = intval($_GET['col']);

if(isset($row['image'.$col]) && $row['iamge'.$col] != NULL){
    $content = $row['image'.$col];
}else{
    exit; // col is not existent, or image is empty
}

header('Content-type: image/jpg');
echo $content;
exit;




?>

person user701510    schedule 02.06.2011    source источник
comment
Зачем вам хранить изображения в BLOB-поле? Скорее сохраните его в файловой системе и сопоставьте их путь с полями db. Это упростит управление файлами изображений и уменьшит количество обращений к базе данных.   -  person Sujit Agarwal    schedule 02.06.2011
comment
Мне просто интересно, как я могу это сделать ...   -  person user701510    schedule 02.06.2011


Ответы (1)


Во-первых, вы используете базу данных, храните в ней данные, а не файлы. (вы должны хранить ссылку / путь к файлам в БД, а не сами изображения, это только взорвет вашу базу данных и замедлит ее) см. Сохранение изображений в БД - да или нет? для получения дополнительной информации по этой теме.

но если вы хотите сделать это таким образом, вам нужно будет вывести идентификатор строки И идентификатор столбца, например:

echo ($row['image1'] != NULL) ? '<img src="get.php?id='.$row['id'].'&col=1 " width="30" height="30"/> ' : '';

в вашем get.php:

mysql_connect ("localhost","","") or die(mysql_error());
mysql_select_db ("") or die(mysql_error());

$query = mysql_query("SELECT * FROM dbp WHERE id = ".mysql_real_escape_string($_GET['id']));
$row = mysql_fetch_array($query);

$col = intval($_GET['col']);

if(isset($row['image'.$col]) && $row['image'.$col] != NULL){
    $content = $row['image'.$col];
}else{
    exit; // col is not existent, or image is empty
}

header('Content-type: image/jpg');
echo $content;
exit;
person Rufinus    schedule 02.06.2011
comment
поэтому мне просто нужно сделать еще 4 строки кода, например echo ($ row ['image1']! = NULL)? '‹Img src = get.php? Id ='. $ Row ['id']. '& Col = 1 width = 30 height = 30 /› а затем измените get.php, и я настроен? - person user701510; 02.06.2011
comment
нет, мне нужно добавить какой-нибудь код, чтобы проверять сообщения об ошибках? - person user701510; 03.06.2011
comment
просто вызовите get.php напрямую с правильными параметрами, чтобы увидеть любую ошибку. например, get.php? id = 1 & col = 1 - person Rufinus; 03.06.2011
comment
Вызывая get.php напрямую, я получаю это сообщение об ошибке: Предупреждение: mysql_fetch_array (): предоставленный аргумент не является допустимым ресурсом результата MySQL в /home/coroom5/public_html/michael/DBP/get.php в строке 8 - person user701510; 04.06.2011
comment
Что вы имеете в виду, если столбец id правильный или я назвал его по-другому? Это называется id, и я ввел именно то, что вы набрали. В таблице всего одна строка данных. Я забыл упомянуть в своем OP, что у меня есть еще четыре столбца в таблице, но я не вызываю их, поэтому я не думаю, что это имеет значение. Я пойду обновлю свой OP - person user701510; 05.06.2011
comment
LOL, u здесь неправильно написано изображение: $ row ['iamge'. $ Col]! = NULL) Теперь он работает отлично. Спасибо брат! - person user701510; 05.06.2011
comment
Когда ответ вас устраивает, почему вы не отметили его как правильный ответ? - person Rufinus; 05.06.2011