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

Форум MySQL

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

 

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

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

тема: Вывод рисунков из базы данных
 
 автор: Заварник   (12.01.2006 в 11:24)   письмо автору
 
 

Уважаемый Алл! Прошу прощения за повторяющийся топик, но вот уде 2 недели не могу вывести рисунок из БД. Пробывал сам используя советы и использовал чужие скрипты причем судя по высказываниям рабочии скрипты, но у меня кроме квадратив с крестиком ничего не выводиться! Вот я решил что может еще в чем то может быть загвоздка! У меня стоит Денвер, рисунки находятся в поле Blob, (аватары и больше 64 кб они весить не будут)! Помогите в чем еще может быть загвоздка???

   
 
 автор: cheops   (12.01.2006 в 11:48)   письмо автору
 
   для: Заварник   (12.01.2006 в 11:24)
 

А как вы их выводите?

   
 
 автор: Заварник   (12.01.2006 в 13:14)   письмо автору
 
   для: cheops   (12.01.2006 в 11:48)
 

У меня в БД есть таблица Person след вида:

ID naim ICQ Email avatar
1 Dux 254554412 Patri@mail.ru [BLOB - 2.7 KB]
2 Rex 457752414 Dex@mail.ru [BLOB - 2.8 KB]

И таблица news след вида:

ID dat tema msg id_person
1 2006-01-11 13:15:10 Новая запись Бла-бла 1

Я выбираю из таблицы news 10 последних новостей, а из таблицы person имя и avatar человека добавившего новость!

след запросом:

select 'news'.'dat', 'news'.'tema', 'news'.'msg', 'person'.'avatar', 'person'.'naim'
from 'person', 'news'
where 'news'.'avtor' = 'person'.'id'
order by dat desc limit 10

Все данные выводятся в след скриптом:


<HTML>
<HEAD></HEAD>
<BODY bgcolor=#FFFFCC>

<Div Align="Right"><A Href="about.php">Архив новостей</A></Div>

<?
include("config.php");

include(
"connect.php");

$query 'select 'news'.'dat', 'news'.'tema', 'news'.'msg', 'person'.'avatar', 'person'.'naim' from 'person', 'news' where 'news'.'avtor' = 'person'.'id' order by dat desc limit 10';

$result mysql_query($query) or die('Запрос не удачен: ' mysql_error());

 if (
$myrow=mysql_fetch_array($result))
   {
    echo
"<Table Width=100% Border=1 CellSpacing=0 CellPadding=2>\n";
    echo
"<Tr><Tr><Td bgcolor=#7C7CFF><Center><B>10 последних новостей из жизни клана, и не только!</B></Center></Td></Tr><Td bgcolor=#FFFFCC><Center>\n";
       do
         {
           echo
"<Br><Table Width=98% Border=1 CellSpacing=0 CellPadding=2>\n";
           
printf("<Tr bgcolor=#A4A4FF><td width=90>Автор: %s</td><Td colspan=2>Тема: %s</Td></Tr> <Tr bgcolor=#CCCCFF><Td width=90><img src=test.php?id=1></Td><Td colspan=2>%s</Td></Tr> <Tr><Td width=90 bgcolor=#A4A4FF>(Коментариев:0)</Td><Td bgcolor=#7C7CFF>Опубликованна: %s</Td><Td bgcolor=#A4A4FF><A Href=about.php target=w-1>Комментировать</A></Td></Tr>\n"$myrow["naim"], $myrow["tema"], $myrow["msg"], $myrow["dat"]) ;
           echo
"</table><BR>\n";
         }
         While (
$myrow=mysql_fetch_array($result));
    echo
"</Center></Td></Tr>\n";
    echo
"</Table>\n";
   }
  else
   {
   echo 
"Извените нет записей для вывода.";
   }
?>
</BODY>
</HTML>


вызываю скрипт обработки изображения след способом


<img src=test.php?id=1>


вот сам скрипт:


<?
include("config.php");
include(
"connect.php");
$res=mysql_query("SELECT avatar FROM person WHERE ID=$id")
         or die(
"SQL ERROR in line ".__LINE__.", function mysql_query");
$image=mysql_result($res); // берем переменную из б.д.
header("Content-type: image/gif");
echo 
$image;
?>

   
 
 автор: cheops   (12.01.2006 в 22:21)   письмо автору
 
   для: Заварник   (12.01.2006 в 13:14)
 

1) А картинки не бьются? Попробуйте получить md5--хэш картинки в blob-поле и файла, который загружается в базу? Они совпадают или различаются?
2) Как загружаются картинки в базу данных? Они пропускаются черезу функцию mysql_escape_string()

   
 
 автор: Заварник   (13.01.2006 в 08:33)   письмо автору
 
   для: cheops   (12.01.2006 в 22:21)
 

Хеопс, чесно сказать не знаю!
А как получить Md5?
Картинки я загружал при помощи phpmyadmin! А как он их грузит я не знаю. Мне просто нужно в первую очередь сделать вывод, а загрузка будет чуть позже! Я просто очень сильно сказать новичек.

   
 
 автор: Заварник   (13.01.2006 в 10:09)   письмо автору
 
   для: cheops   (12.01.2006 в 22:21)
 

Не, посмотрел Mysql Fronto, картинки не битые!

   
 
 автор: Заварник   (13.01.2006 в 12:45)   письмо автору
 
   для: Заварник   (13.01.2006 в 10:09)
 

Я подумал что делов том что у меня есть на странице фреймы, переделал без фреймов тот же результат!
По идее из главного скрипта в скрипт с "header("Content-type: image/jpeg");"
данные Id поля должны передоваться через GET? Я прав или нет? У меня строка URL не меняется! :((

   
 
 автор: Заварник   (13.01.2006 в 12:57)   письмо автору
 
   для: Заварник   (13.01.2006 в 12:45)
 

Я попробывал запустит скрипт вывода рисунка


<?
header
("Content-type: image/jpeg");
include(
"../config.php");
include(
"../connect.php");
$res=mysql_query('SELECT avatar, id FROM person WHERE id=$_GET[id] LIMIT 0, 30')
echo 
$res['avatar'];
?>


без основного скрипта, дописав след в строке урл


../test.php?id=1


И мне выдается след ошибка:

Parse error: parse error, unexpected T_ECHO in z:\home\.........\1\test.php on line 6
Может причина в этом? Еди да не подскажите что за ошибка?

   
 
 автор: cheops   (13.01.2006 в 13:02)   письмо автору
 
   для: Заварник   (13.01.2006 в 12:57)
 

Отсутствует точка с запятой после
<?php
$res
=mysql_query('SELECT avatar, id FROM person WHERE id=$_GET[id] LIMIT 0, 30')
?>

   
 
 автор: Loki   (13.01.2006 в 13:08)   письмо автору
 
   для: Заварник   (13.01.2006 в 12:57)
 


<? 
header
("Content-type: image/jpeg"); 
include(
"../config.php"); 
include(
"../connect.php"); 
$sql=mysql_query("SELECT avatar, id FROM person WHERE id=".$_GET['id']." LIMIT 0, 30"); 
$res=mysql_fetch_array($sql);
echo 
$res['avatar']; 
?> 

   
 
 автор: cheops   (13.01.2006 в 13:01)   письмо автору
 
   для: Заварник   (13.01.2006 в 12:45)
 

А может у вас отключена директива register_globals? Попробуйте переписать скрипт test.php следующим образом
<? 
include("config.php"); 
include(
"connect.php"); 
$res=mysql_query("SELECT avatar FROM person WHERE ID=$_GET[id]");
if(!
$res) exit("SQL ERROR in line ".__LINE__.", function mysql_query"); 
$image=mysql_result($res,0); // берем переменную из б.д. 
header("Content-type: image/gif"); 
echo 
$image
?>

И попробуйте в браузере сначала позагружать изображение, так как $image=mysql_result($res); - точно должно было приводить к ошибке - эта функция требует два параметра.

   
 
 автор: Заварник   (13.01.2006 в 13:16)   письмо автору
 
   для: cheops   (13.01.2006 в 13:01)
 

Сheops, директива включенна, скрип переписал попробывал код ошибки все тот же! Причем странно то что номер строчки в ошибке не изменился хотя, в скипте строка
echo $image; стала 8
Сheops у меня стоит Денвер базовый и все, не может это быть из за этого?

   
 
 автор: cheops   (13.01.2006 в 14:07)   письмо автору
 
   для: Заварник   (13.01.2006 в 13:16)
 

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

   
 
 автор: Заварник   (13.01.2006 в 14:07)   письмо автору
 
   для: Заварник   (13.01.2006 в 13:16)
 

Сheops, спасибо все заработало! Не знаю что я просто апачь перегрузил и все пошло!

   
Rambler's Top100
вверх

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