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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: картинка в БД (ещё раз)

Сообщения:  [1-10]    [11-20]  [21-22] 

 
 автор: Ксения_954   (17.07.2007 в 00:44)   письмо автору
 
   для: Trianon   (16.07.2007 в 16:13)
 

да..чудесно!!!) появляются картинки!!
спасибо огромное!!!

   
 
 автор: Trianon   (16.07.2007 в 16:13)   письмо автору
 
   для: Ксения_954   (16.07.2007 в 16:10)
 

Заработало? :)

   
 
 автор: Ксения_954   (16.07.2007 в 16:10)   письмо автору
 
   для: Trianon   (16.07.2007 в 14:18)
 

у меня нет слов...спасибо Вам огромное...

откуда Вы это всё знаете? (:

   
 
 автор: Trianon   (16.07.2007 в 14:56)   письмо автору
 
   для: Ксения_954   (16.07.2007 в 14:41)
 

Тогда его можно сделать.
Примерно так.
<?php // update_images.php


include 'config.inc.php';
  
echo 
'Загрузка картинок в каталог<hr>';
   
$sql "SELECT * FROM product";
$prt mysql_query($sql);

if (
mysql_num_rows($prt)>0)  
  {  
    
?>  
    <br> <br>  

    <table class="table" border="1" cellpadding="3" cellspacing="0" width="100%" bordercolordark="white" bordercolorlight="silver">  
     <tr class="ver1" align="center">  

       <td><div class='ver1'>Вид товара</div> </td>  
       <td><div class='ver1'>Цена</div></td>  
       <td><div class='ver1'>Марка</div></td>  
       <td><div class='ver1'>Страна прооизводитель</div></td>  
       <td><div class='ver1'>Описание</div></td>  
       <td><div class='ver1'>Фото</div></td>  
       <td><div class='ver1'>Предприятие</div></td>  
       <td><div class='ver1'>Описание предприятия</div></td>  
     </tr>  
    <?  
     
while($par mysql_fetch_array($prt)) 
    { 



echo 
"<tr> 
<td><div class='ver'>"
.$par['vid']."</div></td> 
<td><div class='ver'>"
.$par['price']."</div></td> 
<td><div class='ver'>"
.$par['marka']."</div></td> 
<td><div class='ver'>"
.$par['strana']."</div></td> 
<td><div class='ver'>"
.$par['note']."</div></td> 
<td><div class='ver'>"

echo 
"<A href=showimg.php?num={$par['id_product']} ><img src=showimg.php?num={$par['id_product']} border=0 width='150' height='150'></a>
<br/><a target=_blank href=tie_image.php?num=
{$par['id_product']} >обновить</a>"
echo 
"</div></td> 
<td><div class='ver'>"
.$par['firma']."</div></td> 
<td><div class='ver'>"
.$par['address']."</div></td> 
</tr>"



                  } 
  } 
  else echo 
"Таблица пуста"
?>

   
 
 автор: Ксения_954   (16.07.2007 в 14:41)   письмо автору
 
   для: Trianon   (16.07.2007 в 14:06)
 

у меня скрипта таблицы с товарами....:(

   
 
 автор: Trianon   (16.07.2007 в 14:18)   письмо автору
 
   для: Ксения_954   (16.07.2007 в 13:47)
 

В самом примитивном варианте придется создать файл tie_image.php с таким примерно текстом:

<html> 
<head> 
  <title>Загрузка фото на сервер</title> 
</head> 
<body> 
      <h2><p><b> Форма для загрузки файлов </b></p></h2> 
      <form action="upload.php" method="post" enctype="multipart/form-data"> 
      id товара: <input name="num" value ="<?php echo ltrim(intval(@$_GET['num']), '0 '); ?>" ><br>
      картинка: <input type="file" name="filename"><br> 
      <input type="submit" value="Загрузить"><br> 
      </form> 
</body> 
</html>


Но чтобы не записывать id товара руками, лучше вызывать этот скрипт из таблицы товаров.

<a href=tie_image.php?num={$row['id_product']} >загрузить картинку</a>

   
 
 автор: Trianon   (16.07.2007 в 14:06)   письмо автору
 
   для: Ксения_954   (16.07.2007 в 13:47)
 

Покажите, пожалуйста скрипт, который выводит (для администратора) всю таблицу товаров.
Подключать upload.htm придется из него.

   
 
 автор: Ксения_954   (16.07.2007 в 13:47)   письмо автору
 
   для: Trianon   (16.07.2007 в 13:22)
 

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


<html>
<head>
  <title>Загрузка фото на сервер</title>
</head>
<body>
      <h2><p><b> Форма для загрузки файлов </b></p></h2>
      <form action="upload.php" method="post" enctype="multipart/form-data">
      <input type="file" name="filename"><br>
      <input type="submit" value="Загрузить"><br>
      </form>
</body>
</html>

   
 
 автор: Trianon   (16.07.2007 в 13:22)   письмо автору
 
   для: Ксения_954   (16.07.2007 в 11:36)
 

Файл showimg.php должен выглядеть как-то так:

<?php
// здесь повторяем запрос чтобы выбрать такие же данные
  
include 'config.inc.php';  // соединяемся с БД
$query "SELECT photo FROM product
            WHERE id_product="
.intval(@$_GET['num']);
 
$res=mysql_query($query);
 @
$image=mysql_result($res00);
 
$pref6 substr($image06);
 
$pref4 substr($pref604);
 
$pref3 substr($pref403);
 if(
$pref6 == "%PNG\r\n")    $type 'png';
 else if(
$pref4 == "GIF8")    $type 'gif';
 else if(
$pref3 == "\xFF\xD8\xFF")    $type 'jpeg';
 if(isset(
$type))
 {
     
header("Content-type: image/$type");
     echo 
$image;
 }
 else
 {
     
header("Content-type: image/gif");
     
fpassthru(fopen("unknown-image-type.gif"'rb'));
 }

?>


при этом нужно проследить чтобы первым байтом файла был символ < , а последним - соответственно, символ >

упоминаемый файл unknown-image-type.gif будет показан, если в таблице на месте картинки лежит нечто отличное от изображения в формате GIF JPG или PNG

Фрагмент кода в файле searchform.php , выполняющий вывод таблицы, тоже нужно изменить. Примерно следующим образом:


  if (mysql_num_rows($prt)>0) 
  { 
    ?> 
    <br> <br> 

    <table class="table" border="1" cellpadding="3" cellspacing="0" width="100%" bordercolordark="white" bordercolorlight="silver"> 
     <tr class="ver1" align="center"> 

       <td><div class='ver1'>Вид товара</div> </td> 
       <td><div class='ver1'>Цена</div></td> 
       <td><div class='ver1'>Марка</div></td> 
       <td><div class='ver1'>Страна прооизводитель</div></td> 
       <td><div class='ver1'>Описание</div></td> 
       <td><div class='ver1'>Фото</div></td> 
       <td><div class='ver1'>Предприятие</div></td> 
       <td><div class='ver1'>Описание предприятия</div></td> 
     </tr> 
    <? 
     
while($par mysql_fetch_array($prt))
    {



echo 
"<tr>
<td><div class='ver'>"
.$par['vid']."</div></td>
<td><div class='ver'>"
.$par['price']."</div></td>
<td><div class='ver'>"
.$par['marka']."</div></td>
<td><div class='ver'>"
.$par['strana']."</div></td>
<td><div class='ver'>"
.$par['note']."</div></td>
<td><div class='ver'>"
;
echo 
"<A href=showimg.php?num={$par['id_product']} ><img src=showimg.php?num={$par['id_product']} border=0 width='150' height='150'></a>";
echo 
"</div></td>
<td><div class='ver'>"
.$par['firma']."</div></td>
<td><div class='ver'>"
.$par['address']."</div></td>
</tr>"
;


                  }
  }
  else echo 
"Поиск не дал результатов.
             Попробуйте изменить критерии поиска."
;



Скрипт-обработчик формы загрузки может выглядеть как-то так:

<html>
<head>
  <title>Результат загрузки файла</title>
</head>
<body>
<?php
    
include 'config.inc.php';  // соединяемся с БД

   
if($_FILES["filename"]["size"] > 1024*3*1024)
   {
     echo (
"Размер файла превышает три мегабайта");
     exit;
   }
   if((
$image file_get_contents($_FILES["filename"]["tmp_name"])) != '')
   {
     echo(
"Файл успешно загружен <br>");

     
$sqltext="UPDATE product SET photo = '".mysql_escape_string($image)."'
     WHERE id_product = "
.intval($_POST['num']);
     
mysql_query($sqltext);
   } else {
      echo(
"Ошибка загрузки файла");
   }
?>

</body>
</html>

но при условии, что в него будет передан из формы параметр с номером строки таблицы, куда помещать картинку.

Чтобы сделать изменения, нужно видеть скрипт, который генерирует саму форму с файловым полем.

   
 
 автор: Ксения_954   (16.07.2007 в 11:36)   письмо автору
 
   для: Trianon   (16.07.2007 в 09:58)
 

честно говоря, я так запуталась...
понимаете, мне нужно просто чтобы при поиске на сайте в таблице результатов выводились столбцы и в одном из стобцов были картинки.
мне не важно, каким способом это сделать. главное просто.
но я уже перепробывала несколько способов...ничего не получилось, и я окончательно запуталась.


вот моя таблица в БД:

-- --------------------------------------------------------

--
-- Структура таблицы `product`
--

CREATE TABLE `product` (
`id_product` int(11) NOT NULL auto_increment,
`vid` tinytext NOT NULL,
`marka` tinytext NOT NULL,
`price` int(10) NOT NULL default '0',
`strana` tinytext NOT NULL,
`note` tinytext NOT NULL,
`photo` longblob,
`firma` tinytext NOT NULL,
`address` tinytext NOT NULL,
`hide` enum('show','hide') NOT NULL default 'show',
`pos` int(11) NOT NULL default '0',
`id_catalog` int(8) NOT NULL,
PRIMARY KEY (`id_product`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 AUTO_INCREMENT=403 ;

--
-- Дамп данных таблицы `product`
--

INSERT INTO `product` VALUES (1, 'Kia Picanto', 'Kia', 279, 'Япония', '1,0 Комфорт МТ', 0x474946383961fc003200e60000e7a2abf 8ebdeedc0c1e59aa5ebb4b9f5e1d9faf5e9 f3d4d2fbf8ecd24868f1d1ced96981f6e6d df8f0e5eab1b6d8647ddc7489cd345ae28b 9aedbcbed14566f7e9dee495a2c9214cf8e de0dd798dd65975edbfbff7e9e1db6d84e6 9ea8cf395efdfcf6e9acb2f0cdcaf4ddd6f 9eee4f6e4dbefc5c4d55472d45270f4dcd8 cc2e55ecbabdeec2c4f0c9c7f3d8d1d8617 ad8627ce9aab2cb2a52df8293db7086e9af b4d4506ef1ceccf0cac9e3909eecb8bac81 e49f3dbd4d34d6cc71845cc3110b0609335 463236882071352216c52346f028e08218e 20528e23828e27b28e2b52112e823777202 3f468238e728f2d1121b2c18f9fd00a8498 1a772090f8509007390a8100003b, 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);
INSERT INTO `product` VALUES (2, 'Kia Picanto', 'Kia', 328, 'Япония', '1,0 Люкс МТ', 0x687474703a2f2f7777772e65737476736 537322e72752f696d672f6c616e6365722e 6a7067, 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);
INSERT INTO `product` VALUES (3, 'Kia Picanto', 'Kia', 373, 'Япония', '1,1 Люкс АТ', '', 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);
INSERT INTO `product` VALUES (4, 'Kia Picanto', 'Kia', 403, 'Япония', '1,1 Премиум АТ', '', 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);
INSERT INTO `product` VALUES (5, 'седан Kia Spectra', 'Kia', 333, 'Япония', '1,6 Стандарт МТ', '', 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);
INSERT INTO `product` VALUES (6, 'седан Kia Spectra', 'Kia', 373, 'Япония', '1,6 Оптиум МТ', '', 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);
INSERT INTO `product` VALUES (7, 'седан Kia Spectra', 'Kia', 389, 'Япония', '1,6 Оптиум МТ+', '', 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);
INSERT INTO `product` VALUES (8, 'седан Kia Spectra', 'Kia', 409, 'Япония', '1.6 Премиум АТ', '', 'Никко моторс', 'Одесская 1г, тел.', 'show', 0, 0);



и т.д.


вот файл searchform.php:


<?php
// Cкрипт-обработчик поискового запроса
// из формы
if(isset($_POST['search']))
{
  
?>
  <a name=table></a>
  <?php
  
// Флаг равен true, если есть хотя бы один критерий поиска
  
$is_query false;
  
// Проверяем наличие и число параметров поиска
  // категория
  
$tmp1 =  $tmp2 $tmp3 ="";

//Вид
    
if(!empty($_POST['vid'])) $tmp1 " and vid LIKE '%".$_POST['vid']."%' ";
  
// Цена
  
if(!empty($_POST['price_min']))
    
$tmp2 " and price>".$_POST['price_min'];
  if(!empty(
$_POST['price_max']))
    
$tmp3 " and price<".$_POST['price_max'];



  
// Формируем запрос из переданных данных
  
$query "SELECT * FROM product
            WHERE hide='show'
            "
.$tmp1.$tmp2.$tmp3."
            ORDER BY pos"
;
  
// Выполняем SQL-запрос
  
$prt mysql_query($query);
  if(!
$prtputerror("Ошибка при обращении к таблице риэлторских услуг");
  
// количество рядов в наборе должно быть больше нуля
  
if (mysql_num_rows($prt)>0)
  {
    
?>
    <br> <br>



    <table class="table" border="1" cellpadding="3" cellspacing="0" width="100%" bordercolordark="white" bordercolorlight="silver">
     <tr class="ver1" align="center">

       <td><div class='ver1'>Вид товара</div> </td>
       <td><div class='ver1'>Цена</div></td>
       <td><div class='ver1'>Марка</div></td>
       <td><div class='ver1'>Страна прооизводитель</div></td>
       <td><div class='ver1'>Описание</div></td>
       <td><div class='ver1'>Фото</div></td>
       <td><div class='ver1'>Предприятие</div></td>
       <td><div class='ver1'>Описание предприятия</div></td>
     </tr>
    <?
    
while($par mysql_fetch_array($prt))
    {



echo 
"<tr>
<td><div class='ver'>"
.$par['vid']."</div></td>
<td><div class='ver'>"
.$par['price']."</div></td>
<td><div class='ver'>"
.$par['marka']."</div></td>
<td><div class='ver'>"
.$par['strana']."</div></td>
<td><div class='ver'>"
.$par['note']."</div></td>
<td><div class='ver'>"
;
echo 
"<img src='showimg.php?tmp1=...&tmp2=...&tmp3=...' border=0 width='150' height='150'>";
// здесь где ... нужно передать параметры tmp для каждого.
echo "</div></td>
<td><div class='ver'>"
.$par['firma']."</div></td>
<td><div class='ver'>"
.$par['address']."</div></td>
</tr>"
;


                  }
  }
  else echo 
"Поиск не дал результатов.
             Попробуйте изменить критерии поиска."
;
  echo 
"</table>";
}

?>






вот ещё showimg.php


<?php
  
// Устанавливаем соединение с базой данных
  
reqiure_once("config.php");
  
// Извлекаем содержимое файла $filename
  
$contents file_get_contents($showimg);
  
// Экранируем спец-символы
  
$contents mysql_escape_string($showimg);
  
// Формируем SQL-запрос
  
$query $sqltext="INSERT INTO PRODUCT (photo) VALUES ('" 
        
.mysql_escape_string(file_get_contents($_FILES["filename"]["tmp_name"])."'"); 

  
// Выполняем SQL-запрос
  
if(!mysql_query($query)) exit(mysql_error());
?>




Подскажите, пожалуйста, как лучше загрузить картинки в БД и как эти картинки показать в таблице результатов поиска.
Заранее благодарна.

   

Сообщения:  [1-10]    [11-20]  [21-22] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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