[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не выводятся картинки
Nidermayer
Всем доброго времени суток.

Тренюсь выводить данные различного рода из БД и папок.

Стоит следующая задача:
- выводить данные из БД и соответствующую картинку для данных из БД.

Сначала я считываю из БД данные, и определяю - есть ли соответствующая картинка.
Затем обрабатываю размеры данной картинки и вывожу ее с описательными данными из БД.
Когда я проверяю - есть данная картинка в моей папке в пределах цикла if-else, входит в if. Но вот при выводе почему-то не хоет выводить данную картинку - выводит данные по alt="....". Смотрел по отладке - вроде все есть, а картинку выводить не хочет.

P.S. Использую Apache 2.4

<php
$result = mysqli_query($link, "SELECT * FROM table_products ");
if(mysqli_num_rows($result)>0){
$row = mysqli_fetch_assoc($result);

do{
//Посмотрим - что там в том $row
echo "<pre>";
print_r($row);
echo "</pre>";

if($row["image"] !="" && file_exists(__DIR__."/uploads_images/".$row["image"])){
echo "Выполнен вход в базовый блок для картинки<br>";
$img_path = __DIR__."/uploads_images/".$row["image"];
$max_width = 200;
$max_height = 200;
list($width, $height) = getimagesize($img_path);

echo "$width<br>";
echo "$height<br>";
echo "$img_path<br>";
echo "<pre>";
print_r(getimagesize($img_path));
echo "</pre>";
$ratioh = $max_height/$height;
$ratiow = $max_width/$width;
$ratio = min($ratioh, $ratiow);
$width = intval($ratio*$width);
$height = intval($ratio*$height);
}
else{
$img_path = '/shop/www/img/no_image.png';
$width = 120;
$height = 200;
}
Nidermayer
А вот когда уже вывожу данные - не видит почему-то мой $img_path
<?php

echo '<li>
<div class="block images_grid">
<img src="'.$img_path.'" width="'.$width.'" height="'.$height.'" alt="рррр" />
</div>

?>

Вместо картинки данные по alt
Nidermayer
<?php
echo "$img_path<br>";
?>

Выводит

<?php
C:\WebServer\Apache24\htdocs\shop\www/uploads_images/img1.jpg
?>

В пределах __DIR__ - слеши в одну сторону, в пределах моей строки - в другую. Но если я в строке их изменю - там вообще мясо получается. Тут, я думаю, ошибки нет - но где она ?
AllesKlar
$img_path = __DIR__."/uploads_images/".$row["image"];

В html путь к изображению должен быть либо относительный html страницы, либо абсолютный к корню сайта.
У тебя же путь абсолютный к корню диска (файловой системы)

html не понимает, что такое "C:\WebServer\Apache24\..."
html понимает пути:
  • shop/image/img.jpg
  • ../shop/../image/img.jpg
  • http://localhost/shop/image/img.jpg

плохо
if(mysqli_num_rows($result)>0){
$row = mysqli_fetch_assoc($result);

do{
//Посмотрим - что там в том $row


хорошо
if($result !== false) {
while($row = mysqli_fetch_assoc($result)) {
}
}


_____________
[продано копирайтерам]
Nidermayer
Но я ведь вывожу данные не в пределах тэга <html> </html>, а в пределах тега php через команду echo - все равно не канает ?
Кстати, вот такой вывод прокатил ))

<img src="/shop/www/uploads_images/'.$row["image"].'" />
AllesKlar
Цитата (Nidermayer @ 10.07.2016 - 13:10)
Но я ведь вывожу данные не в пределах тэга <html> </html>, а в пределах тега php через команду echo - все равно не канает ?

а что, по-твоему, делает php?
Он всего-лишь генерирует html, который потом отправляется в браузер.

Цитата (Nidermayer @ 10.07.2016 - 13:10)
Кстати, вот такой вывод прокатил ))

О чем я выше и написал.

_____________
[продано копирайтерам]
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.