Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изображение по умолчанию
 
 автор: Денис2009   (10.09.2011 в 10:19)   письмо автору
 
 

Приветствую ! У меня проблема. Сделал сайт объявлений, там есть фото, текст объявлений, дата, телефон, юзер. Проблема в том, что если пользователь не добавляет фото, нужно сделать так, чтобы выводилась картинка по умолчанию. Картинки у меня хранятся в базе, поле image mediumblob. почему именно в базе, потому что объявления обновляются каждый день, и те объявления которые старше 7 дней они удаляются. Вот PHP код для вывода картинки из базы:
<?php
include("db.php");
if ( isset( $_GET['id'] ) ) {
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `image` FROM `nkjsg` WHERE `id`=".$id;
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
}
}
}
?>
пробовал сделать условие что если $query пуста то выводится картинка из другой таблицы, но что то не получается, по всякому пробовал, и ни как чё то не хочет. Может кто то и подскажет как решить эту проблему. Заранее спасибо

  Ответить  
 
 автор: Valick   (10.09.2011 в 10:49)   письмо автору
 
   для: Денис2009   (10.09.2011 в 10:19)
 

почему именно в базе, потому что объявления обновляются каждый день, и те объявления которые старше 7 дней они удаляются
это абсолютно не причина, удалять их можно в любом случае
я бы лично хранил в базе только путь к файлу
в вашем случае нужно сохранить на диске изображение по умолчанию и...
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
} else{
вот тут вставить картинку
}

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

  Ответить  
 
 автор: Денис2009   (10.09.2011 в 11:04)   письмо автору
 
   для: Valick   (10.09.2011 в 10:49)
 

не получается, а картинку добавлять через echo ?
<?php
include("db.php");
if ( isset( $_GET['id'] ) ) {
$id = (int)$_GET['id'];
if ( $id > 0 ) {
$query = "SELECT `image` FROM `OB` WHERE `id`=".$id;
$res = mysql_query($query);
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
if ( mysql_num_rows( $res ) == 1 ) {
$image = mysql_fetch_array($res);
header("Content-type: image/*");
echo $image['image'];
}
else{
echo "<img src='http://site.ru/Logo.png'>";
}
}
}
}
?>

  Ответить  
 
 автор: Valick   (10.09.2011 в 11:15)   письмо автору
 
   для: Денис2009   (10.09.2011 в 11:04)
 

<?php
include("db.php");
if ( isset( 
$_GET['id'] ) ) {
 
$id = (int)$_GET['id'];
 if ( 
$id ) {
  
$query "SELECT `image` FROM `OB` WHERE `id`=".$id;
  
$res mysql_query($query);
  if ( 
mysql_num_rows$res ) > 0) {
   
$image mysql_fetch_array($res);
   
header("Content-type: image/*");
   echo 
$image['image'];
   }else{
   echo 
"<img src='http://site.ru/Logo.png'>";
   }
  }
}
?>

  Ответить  
 
 автор: Денис2009   (10.09.2011 в 11:19)   письмо автору
 
   для: Valick   (10.09.2011 в 11:15)
 

всё равно не работает :(

  Ответить  
 
 автор: Valick   (10.09.2011 в 14:52)   письмо автору
 
   для: Денис2009   (10.09.2011 в 11:19)
 

да, чуть не так
так пробуйте
<?php
include("db.php");
if ( isset( 
$_GET['id'] ) ) {
 
$id = (int)$_GET['id'];
 if ( 
$id ) {
  
$query "SELECT `image` FROM `OB` WHERE `id`=".$id;
  
$res mysql_query($query);
  if ( 
mysql_num_rows$res ) > ) {
   
$image mysql_fetch_array($res);
   if(
$image['image']){
   
header("Content-type: image/*");
   echo 
$image['image'];
   }else{
   echo 
"<img src='http://site.ru/Logo.png'>";
   }
  }
 }
}
?>

но все равно хранение изображений в базе, это неудачный вариант во всех отношениях

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования