[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: добавление картинок к БД
Shine
Я создала в phpmyadmin в таблице Uzel столбец image с типом BLOB. Как мне теперь загрузить туда данные? smile.gif



Спустя 2 минуты, 42 секунды (10.03.2009 - 12:14) waldicom написал(а):
Есть два способа: руками и головой.
Второй предпочтительней.

пысы. Засовывать картинки в базу данных - это не есть хорошо

Спустя 4 минуты, 27 секунд (10.03.2009 - 12:18) twin написал(а):
ShineТо есть ты хочешь хранить изображения прямо в базе, как я понял. Иногда действительно есть такая необходимость, но крайне редко. Вообще в базе нужно хранить только путь до картинки, а саму - на сервере в девственно чистом виде. Тогда поле BLOB Ни к чему, достаточно VARCHAR

Спустя 32 секунды (10.03.2009 - 12:19) Joker написал(а):
А зачем засоывать картинку в базу? не проще её в виде файла на серве хранить?

Спустя 58 минут, 4 секунды (10.03.2009 - 13:17) Shine написал(а):
Дело в том, что я только изучаю php и с картинками работала не так уж и много....вся работа у меня ограничивалась внедрением в html код:
<img src="http://www.homepage.ru/my/my.jpg">...
объясню свою ситуацию...у меня в таблице Uzel имеется некоторое количество узлов и я хотела сделать так, чтобы каждому узлу соответствовала своя схема, чтобы когда загружалась база узлов можно было бы для каждого узла просмотреть свою картинку...и я подумала, что из базы ее вызвать будет легче smile.gif

Спустя 2 минуты, 13 секунд (10.03.2009 - 13:19) waldicom написал(а):
Цитата (Shine @ 10.03.2009 - 11:17)
Дело в том, что я только изучаю php и с картинками работала не так уж и много....вся работа у меня ограничивалась внедрением в html код:
<img src="http://www.homepage.ru/my/my.jpg">...
объясню свою ситуацию...у меня в таблице Uzel имеется некоторое количество узлов и я хотела сделать так, чтобы каждому узлу соответствовала своя схема, чтобы когда загружалась база узлов можно было бы для каждого узла просмотреть свою картинку...и я подумала, что из базы ее вызвать будет легче smile.gif

Нет. Лучше, как было предложено выше, хранить в базе ссылку на картинку...
Будет гораздо легче как базе, так и скрипт.

Спустя 7 минут, 14 секунд (10.03.2009 - 13:26) Joker написал(а):
Цитата (waldicom @ 10.03.2009 - 10:19)
Нет. Лучше, как было предложено выше, хранить в базе ссылку на картинку...
Будет гораздо легче как базе, так и скрипт.

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

Спустя 23 минуты, 24 секунды (10.03.2009 - 13:50) Shine написал(а):
а тогда как добавить ссылку на картинку в базу?
insert into Uzel (image) values (\"Z:\home\localhost\www\phphost.ru\www\first.jpg\") where id_uzel=1
правильно я написала? или все таки по другому? smile.gif

Спустя 3 минуты, 37 секунд (10.03.2009 - 13:53) Joker написал(а):
нет, нужно прописывать либо абсолютный путь, типо www.site.ru/img/img.gif либо относительно того файла где будет подключаться.

Спустя 12 минут, 31 секунда (10.03.2009 - 14:06) Shine написал(а):
Цитата
либо относительно того файла где будет подключаться

т.е. Z:\home\localhost\www\phphost.ru\www\first.php ...а файл first.php в свою очередь содержит:
HTML
<html>
<head>
<title>Схема узла</title>
</head>
<body bgcolor="#000000">
<img src="first.jpg">
</body>
</html>

если нет, то напишите подробнее, пожалуйста smile.gif

Спустя 8 минут, 3 секунды (10.03.2009 - 14:14) Joker написал(а):
Ну вот смотри, Z:\home\localhost\www\phphost.ru\www\first.php вот этот файл подключает, картинку, если картинка лежит в этой же папке тобишь
Z:\home\localhost\www\phphost.ru\www\first.jpg то надо лишь записать просто название картинки тобишь first.jpg, но я те советую создать папку отдельно
например Z:\home\localhost\www\phphost.ru\www\img\first.jpg тогда в базу запишем, img\first.jpg

Спустя 2 часа, 20 минут, 21 секунда (10.03.2009 - 16:34) Shine написал(а):
так...я создала отдельно папку для картинок, занесла их в базу...теперь для вывода их из базы написала код :
Свернутый текст
PHP
<?
$image=$_POST['image'];
$db_name="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");

if(isset(
$_GET['id_uzel']))
{
$sql="SELECT `image` FROM $table_name  
WHERE `id_uzel` =\"$id_uzel\"
"
;   
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос потому что:" mysql_error());                                              
echo 
"$image";
}

на предыдущий файл переходим по ссылке из другого файла с кодом:
Свернутый текст
HTML
<html>
<head>
<title>Клиенты</title>
</head>
<body bgcolor="#FFEBCD" link="#8B0000" alink="#8B0000" vlink="#8B0000">
<div align="right">
<a href="http://localhost/phphost.ru/www/image.php">Посмотреть схему узла</a>
</div>
<h2>Клиенты</h2>
<em>Для изменения записанной информации нажмите на имя клиента</em>
PHP
<?php
$db_name
="Passport_object";
$table_name="Client";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");
if(isset(
$_GET['id_uzel']))
{
$sql="SELECT * FROM $table_name  
WHERE `id_uzel` ='"
.(int) $_GET['id_uzel']."' order by `id_client`";
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос потому что:" mysql_error());
    while(
$row=mysql_fetch_array($result)) 
    {
$id_client=$row['id_client'];
$name_client=$row['name_client'];
$adress_client=$row['adress_client'];
$phone_client=$row['phone_client'];
$id_uzel=$row['id_uzel'];
$display_block .="
<UL><p><LI>
<a href=\"http://localhost/phphost.ru/www/show_client.php?id_client=$id_client\">$name_client</a>
Адрес клиента: $adress_client, Телефон:$phone_client</p></UL>
"
;
    }
}
 echo
"$display_block"

но у меня не получается вывести картинку, которая соответствует определенному id_uzel..

Спустя 3 минуты, 58 секунд (10.03.2009 - 16:38) waldicom написал(а):
PHP
$sql="SELECT `image` FROM $table_name  
WHERE `id_uzel` =\"$id_uzel\";
$result=@mysql_query($sql, $connection)
or die ("
Невозможно выполнить запрос потому что:" . mysql_error());                                              
echo "
$image

а где
SQL
$row=mysql_fetch_array($result)

и что-то типа
PHP
$image $row['image']


Правда и потом останется еще одна мелочь, но я пока не буду говорить, потому что не надо забывать про свою голову

Спустя 35 минут, 26 секунд (10.03.2009 - 17:14) Shine написал(а):
исправила:
PHP
if(isset($_GET['id_uzel']))
{
$sql="SELECT `image` FROM $table_name  
WHERE `id_uzel` =\"$id_uzel\"
"
;   
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос потому что:" mysql_error());
while(
$row=mysql_fetch_array($result)) 
    {
$id_uzel $row['id_uzel'];
$image $row['image'];
    }                                              

}
echo 
"$image";

что не так?...что еще нужно?

Спустя 1 минута, 46 секунд (10.03.2009 - 17:15) waldicom написал(а):
Цитата (Shine @ 10.03.2009 - 15:14)
исправила:
PHP
if(isset($_GET['id_uzel']))
{
$sql="SELECT `image` FROM $table_name  
WHERE `id_uzel` =\"$id_uzel\"
"
;   
$result
=@mysql_query($sql, $connection)
or die ("Невозможно выполнить запрос потому что:" . mysql_error());
while(
$row=mysql_fetch_array($result)) 
    
{
$id_uzel = $row['id_uzel'];
$image = $row['image'];
    }                                              

}
echo "$image";

что не так?...что еще нужно?

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

Спустя 57 минут, 22 секунды (10.03.2009 - 18:13) Shine написал(а):
нуу...в таблице хранится ссылка на картинку...а вот насчет вывода...я тут нашла:
// Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
header("Content-type: image/*");
// И передаем сам файл
echo $image['content'];
вставила все это в свой код вот так:
Свернутый текст
PHP
if(isset($_GET['id_uzel']))
{
$sql="SELECT `image` FROM $table_name  
WHERE `id_uzel` =\"$id_uzel\"
"
;   
$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос потому что:" mysql_error());
while(
$row=mysql_fetch_array($result)) 
    {
$id_uzel $row['id_uzel'];
$image $row['image'];
header("Content-type: imаgе/*")
echo 
$image;
    }                                              

}

но у меня ничего не вышло...

Спустя 5 минут, 34 секунды (10.03.2009 - 18:18) Joker написал(а):
вместо этого
PHP
header("Content-type: imаgе/*")
echo 
$image;

напиши это
PHP
echo '<img src="'.$image.'" border="0" />';

Спустя 19 минут, 22 секунды (10.03.2009 - 18:38) waldicom написал(а):
Цитата (Joker @ 10.03.2009 - 16:18)
вместо этого
PHP
header("Content-type: imаgе/*")
echo $image;

напиши это
PHP
echo '<img src="'.$image.'" border="0" />';

Совершенно точно!
Так как в базе у тебя ледит ссылка на картинку, то браузеру нужно как-то сказать, как эту картинку отобразить... Для этого и нужен тэг <img>

Спустя 2 минуты, 22 секунды (10.03.2009 - 18:40) Joker написал(а):
Цитата
Совершенно точно

а то cool.gif

Спустя 8 минут, 19 секунд (10.03.2009 - 18:48) Shine написал(а):
Цитата
напиши это

PHP 
echo '<img src="'.$image.'" border="0" />';

написала...теперь выводит только белый квадратик с крестиком..

Спустя 4 минуты, 1 секунда (10.03.2009 - 18:52) Joker написал(а):
Цитата
написала...теперь выводит только белый квадратик с крестиком..

Покажи то что получилось, html код всмысле.

Спустя 1 минута, 18 секунд (10.03.2009 - 18:54) Joker написал(а):
скорее всего при запросе достаёт пустоту, проверь в $image лежал путь до картинки.

Спустя 28 минут, 23 секунды (10.03.2009 - 19:22) Shine написал(а):
так...вот код:
Свернутый текст
HTML
<html>
<head>
<title>Схема узла</title>
</head>
<body bgcolor="#FFFAFA">

<?
$image=$_POST['image'];
$db_name="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die ("Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name, $connection)
or die("Невозможно выбрать БД.");

if(isset($_GET['id_uzel']))
{
$sql="SELECT `image` FROM $table_name
WHERE `id_uzel` =\"$id_uzel\"
";
$result=@mysql_query($sql, $connection)
or die ("Невозможно выполнить запрос потому что:" . mysql_error());
while($row=mysql_fetch_array($result))
{
$id_uzel=$row['id_uzel'];
$image = $row['image'];
}
}
echo '<img src="'.$image.'" border="0" />';

?>

</body>
</html>

а насчет пути..как его проверить?...картинка у меня лежит в
Z:\home\localhost\www\phphost.ru\www\img...а в таблице я ее сохранила как img\knigka.jpg

Спустя 16 минут, 30 секунд (10.03.2009 - 19:39) Joker написал(а):
Покажи что получилось.

Спустя 9 минут, 58 секунд (10.03.2009 - 19:49) Shine написал(а):
если ты имеешь ввиду тот код, который можно просмотреть нажав правой кнопочкой мышки и указав "Просмотреть код HTML", то вот он:
HTML
<html>
<head>
<title>Схема узла</title>
</head>
<body bgcolor="#FFFAFA">

<img src="" border="0" />
</body>
</html>

Спустя 40 минут, 24 секунды (10.03.2009 - 20:29) Joker написал(а):
у тебя пустая перменная, $image покажи что, что есть в таблице какие данные.

Спустя 26 минут, 50 секунд (10.03.2009 - 20:56) Shine написал(а):
в таблице у меня в столбцах id_uzel и image содержится: 5,7,8 и img\sipailovskiy.jpg, img\semya.jpg, img\knigka.jpg соответственно...
я сейчас посмотрела...в таблице же есть ссылка на картинку, так вот когда я на нее нажимаю, то она у меня тоже не открывается...или она не должна открываться в таблице?

Спустя 50 минут, 56 секунд (10.03.2009 - 21:47) Shine написал(а):
подскажите еще...может по другому можно как то сделать, если так не получается?...или что то еще добавить в уже имеющийся код?

Спустя 27 минут, 38 секунд (10.03.2009 - 22:14) Joker написал(а):
HTML
<html>
<head>
<title>Схема узла</title>
</head>
<body bgcolor="#FFFAFA">

<?
$image=$_POST['image'];
$db_name="Passport_object";
$table_name="Uzel";
$connection = @mysql_connect("localhost","root") or die ("Невозможно подключиться к MySQL.");
$db = mysql_select_db($db_name, $connection) or die("Невозможно выбрать БД.");
if(isset($_GET['id_uzel']))
{
$result=@mysql_query("SELECT `image` FROM `".$table_name."` WHERE `id_uzel` ='".$id_uzel."'", $connection)
or die ("Невозможно выполнить запрос потому что:" . mysql_error());
while($row=mysql_fetch_array($result))
{
  $id_uzel=$row['id_uzel'];
  $image = $row['image'];
  $alt = (empty($image))?"Картинка в базе отсутсвует.":"Картинка отображаеться";
  echo '<img src="'.$image.'" border="0" alt="'.$alt.'" />';
}
}

?>

</body>
</html>


вот попробуй.

Спустя 1 час, 33 минуты, 35 секунд (10.03.2009 - 23:48) Shine написал(а):
вообще ничего не выходит((...пустой лист и все...а когда я
Цитата
echo '<img src="'.$image.'" border="0" alt="'.$alt.'" />';

переставляю:
PHP
$alt = (empty($image))?"Картинка в базе отсутсвует.":"Картинка отображаеться";
}
}
 echo 
'<img src="'.$image.'" border="0" alt="'.$alt.'" />';

то выводится квадратик с крестиком..

Спустя 9 минут, 41 секунда (10.03.2009 - 23:58) sergeiss написал(а):
Попробуй применить мощное средство отладки smile.gif : просмотри код страницы, полученной в браузере. К этому моменту твой скрипт уже отработал, и ты увидишь "живьем" результаты его деятельности.
И лучше покажи эти результаты тут. Тогда можно будет понять, что же не так делается. А может, и тебе понятно станет, и без подсказок.

Спустя 1 час, 10 минут, 37 секунд (11.03.2009 - 01:08) Joker написал(а):
HTML
<html>
<head>
<title>Схема узла</title>
</head>
<body bgcolor="#FFFAFA">

<?
$image=$_POST['image'];
$db_name="Passport_object";
$table_name="Uzel";
$connection = @mysql_connect("localhost","root") or die ("Невозможно подключиться к MySQL.");
$db = mysql_select_db($db_name, $connection) or die("Невозможно выбрать БД.");
if(isset($_GET['id_uzel']))
{
$result=@mysql_query("SELECT `image` FROM `".$table_name."` WHERE `id_uzel` ='".$id_uzel."'", $connection)
or die ("Невозможно выполнить запрос потому что:" . mysql_error());
if (mysql_num_rows($result)>0)
{
while($row=mysql_fetch_array($result))
{
$id_uzel=$row['id_uzel'];
$image = $row['image'];
$alt = (empty($image))?"Картинка в базе отсутсвует.":"Картинка отображаеться";
echo '<img src="'.$image.'" border="0" alt="'.$alt.'" />';
}
}
else
{
echo "из базы недостано ни чего!!!";
}
}

?>

</body>
</html>


вот тут поставил проверку если выведет "из базы недостано ни чего!!!" то значит ты непавильно достаешь что то из базы.

Спустя 19 часов, 49 минут, 43 секунды (11.03.2009 - 20:58) Shine написал(а):
так..я посмотрела...у меня не определяется id_uzel, когда я нажимаю на ссылку, т.е. в браузере написано просто id_uzel= ..и все...можете посмотреть файлы и сказать мне где нужно еще определить переменную id_uzel?, а то я смотрю и не могу понять..
вот часть файла bd_client.php из которого мы переходим в файл image.php:
Свернутый текст
HTML
<html>
<head>
<title>Клиенты</title>
</head>
<body bgcolor="#FFEBCD" link="#8B0000" alink="#8B0000" vlink="#8B0000">
<div align="right">
<a href="image.php?id_uzel="$_GET['id_uzel']"">Посмотреть схему узла</a>
</div>
<h2>Клиенты</h2>
<em>Для изменения записанной информации нажмите на имя клиента</em>

и сам файл image.php:
Свернутый текст
PHP
<?
$id_uzel=$_GET['id_uzel'];
$image=$_GET['image'];
$db_name="Passport_object";
$table_name="Uzel";
$connection=@mysql_connect("localhost","root")
or die (
"Невозможно подключиться к MySQL.");
$db=@mysql_select_db($db_name$connection)
or die(
"Невозможно выбрать БД.");

if(isset(
$_GET['id_uzel']))
{
$sql="SELECT `image` FROM $table_name  
WHERE `id_uzel` =\"$id_uzel\"
"

$result=@mysql_query($sql$connection)
or die (
"Невозможно выполнить запрос потому что:" mysql_error());
while(
$row=mysql_fetch_array($result)) 
    {
$id_uzel=$row['id_uzel'];
$image $row['image'];
    }
  }
echo 
'<img src="'.$image.'" border="0" />';

и еще...если я вот здесь:
Цитата
<a href="image.php?id_uzel="$_GET['id_uzel']"">Посмотреть схему узла</a>
вместо $_GET['id_uzel'] ставлю просто номер узла, то картинка выводится..

Спустя 9 минут, 1 секунда (11.03.2009 - 21:07) sergeiss написал(а):
Вот эту строчку

HTML
<a href="image.php?id_uzel="$_GET['id_uzel']"">Посмотреть схему узла</a>


замени на

HTML
<a href="image.php?id_uzel=<?php echo $_GET['id_uzel']; ?>">Посмотреть схему узла</a>


Спустя 7 минут, 45 секунд (11.03.2009 - 21:15) Shine написал(а):
получилось, Получилось, ПОЛУЧИЛОСЬ!!!!!! biggrin.gif ....и что бы я без вас делала??? rolleyes.gif wink.gif smile.gif Спасибо!! biggrin.gif

Спустя 3 минуты, 41 секунда (11.03.2009 - 21:18) sergeiss написал(а):
Цитата (Shine @ 11.03.2009 - 21:15)
....и что бы я без вас делала??? rolleyes.gif wink.gif smile.gif

На это у меня есть "стандартный" ответ: думала бы сама smile.gif

И вопрос еще. Ты поняла, в чем была последняя ошибка, почему у тебя не выводилось ничего?

Спустя 5 минут, 40 секунд (11.03.2009 - 21:24) Shine написал(а):
нуу...переменная определяется в php, а я ее просто вставила в html-код и все...так она естественно не выведется...ну вот через теги php ее и надо было вывести smile.gif
Быстрый ответ:

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