Как получить и вывести изображения из нескольких столбцов с помощью PHP и MySQL? - PullRequest
2 голосов
/ 02 июня 2011

UPDATE:

В моей таблице SQL есть десять столбцов: id, imgid, urlid, image1, image2, image3, image4, image5 и комментарий. Id, imgid и urlid имеют тип int. Изображение [1-5] относится к типу медиумблога. URL и комментарий являются текстовыми. Imgid - это количество загруженных изображений (должно быть 5), urlid - количество отправленных URL-адресов (которое должно быть одним прямо сейчас), URL-адрес содержит URL-адрес, а комментарий - комментарии пользователя. Я хотел бы получить и вывести все данные изображения из столбцов изображения подряд, но я получаю порванные значки страниц. Я использую 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;




?>

1 Ответ

1 голос
/ 02 июня 2011

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

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

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;
...