Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: фото в бд

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
Гость
Отправлено: 30 Мая, 2012 - 13:24:15
Post Id


УДАЛЁН










Здравствуйте. Помогите пожалуйста залить фото для каждого пользователя. у каждого свое.

PHP:
скопировать код в буфер обмена
  1.  /*Форма добавления студента*/
  2.    case 'add': ?>
  3.  
  4.       <p>Введите данные о студенте:</p>
  5.       <form enctype='multipart/form-data' id='form1' name='form1' method='post' action='adm_stud.php?act=gotov&gr=<?=$_GET["gr"]; ?>&pr=2'>
  6.      
  7.          <p>Фамилия</p>
  8.          <p><input id='Fam' name='Fam' type='text' size=30 maxlength=30/></p>
  9.          <p>Имя</p>
  10.          <p><input id='Im' name='Im' type='text' size=15 maxlength=15 /></p>
  11.          <p>Отчество</p>
  12.          <p><input id='Ot' name='Ot' type='text' size=20 maxlength=20 /></p>
  13.          <p>Дата рождения</p>
  14.          <p><input id='Date' name='Date' type='text' size=10 maxlength=10 /></p>
  15.          <p>Телефон</p>
  16.          <p><input id='tel' name='tel' type='text' size=10 maxlength=10 /></p>
  17.          <p>Фото</p>
  18.          <p><input id='foto' name='foto' type='text' size=30 maxlength=30 /></p>
  19.          <p>Краткая информация</p>
  20.          <p><textarea id='info' name='info' cols='50' rows='10'></textarea></p>
  21.          <p>Достижения</p>
  22.          <p><textarea id='dostig' name='dostig' cols='50' rows='10'></textarea></p>
  23.          <p align=center><input name='but' type='submit' value='Добавить' /></p>
  24.       </form>
  25.    <? break;


Тут добавляется студент, помогите сюда добавить форму добавления изображения.
Я как то пробовал добавлять к
PHP:
скопировать код в буфер обмена
  1. <p>Фото</p>
  2.          <p><input id='foto' name='foto' type='text' size=30 maxlength=30 /></p>

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

Сейчас там стоит просто поле для ввода текста. а надо фото добавить в бд students таблица student поле foto Какой тип у этого поля должен быть?

(Отредактировано автором: 30 Мая, 2012 - 13:25:40)

 
 Top
kat69
Отправлено: 30 Мая, 2012 - 14:52:05
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Май 2012  


Помог: 1 раз(а)




Если я правильно понял вопрос, то так
CODE (html):
скопировать код в буфер обмена
  1. <input id='foto' name='foto' type='file' size='30'  />
 
 Top
Гость
Отправлено: 30 Мая, 2012 - 15:09:37
Post Id


УДАЛЁН










тип в бд какой у foto ставить?
и я не могу сделать форму добавления фотографии в форме добавления студента
 
 Top
kat69
Отправлено: 30 Мая, 2012 - 15:24:19
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Май 2012  


Помог: 1 раз(а)




если база MySQL, то есть несколько вариантов:
TINYBLOB - может хранить до 255 байт
BLOB - может хранить до 64 килобайт информации
MEDIUMBLOB - до 16 мегабайт
LONGBLOB - до 4 гигабайт

Поле для загрузки файла
CODE (html):
скопировать код в буфер обмена
  1.        <p>Фото</p>
  2.        <p><input id='foto' name='foto' type='file' size='30'  /></p>
 
 Top
Гость
Отправлено: 30 Мая, 2012 - 15:39:03
Post Id


УДАЛЁН










а как потом вывести эту фотографию?

PHP:
скопировать код в буфер обмена
  1.  if ($student['foto']!=0)
  2. printf("<table width=500px border='0'>
  3.  <tr>
  4.    <td><p align='center'><img src='img/%s.jpg' width='175' height='220'/>",$student["foto"]);
  5. else
  6. printf("<table width=500px border='0'>
  7.  <tr>
  8.    <td><p align='center'><img src='img/none.jpg' width='175' height='220'/>",$student["foto"]);
  9.  
  10.  
 
 Top
kat69
Отправлено: 30 Мая, 2012 - 16:56:09
Post Id


Новичок


Покинул форум
Сообщений всего: 22
Дата рег-ции: Май 2012  


Помог: 1 раз(а)




Для этого необходимо делать отдельный файл
например: image.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Соединяемся с сервером БД
  3. mysql_connect ( 'localhost', 'root', '' );
  4. mysql_query( 'SET NAMES cp1251' );
  5. mysql_select_db ( 'images' );
  6.  
  7. if ( isset( $_GET['id'] ) ) {
  8.   // Здесь $id номер изображения
  9.   $id = (int)$_GET['id'];
  10.   if ( $id > 0 ) {
  11.     $query = "SELECT `content` FROM `images` WHERE `id`=".$id;
  12.     // Выполняем запрос и получаем файл
  13.     $res = mysql_query($query);
  14.     if ( mysql_num_rows( $res ) == 1 ) {
  15.       $image = mysql_fetch_array($res);
  16.       // Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
  17.       header("Content-type: image/*");
  18.       // И  передаем сам файл
  19.       echo $image['content'];
  20.     }
  21.   }
  22. }
  23. ?>


HTML для получения фото примерно такой:
CODE (html):
скопировать код в буфер обмена
  1. <img src="mysite.com/image.php?id=1" />
 
 Top
Гость
Отправлено: 30 Мая, 2012 - 17:05:36
Post Id


УДАЛЁН










Не загружает страницу добавления студента вообще

image.php
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Соединяемся с сервером БД
  3. mysql_connect ( 'localhost', 'root', '' );
  4. mysql_query( 'SET NAMES cp1251' );
  5. mysql_select_db ( 'images' );
  6.  
  7. if ( isset( $_GET['id'] ) ) {
  8.   // Здесь $id номер изображения
  9.   $id = (int)$_GET['id'];
  10.   if ( $id > 0 ) {
  11.     $query = "SELECT `student` FROM `foto` WHERE `id`=".$id; //таблица student в нем есть foto туда должны сохранятся фото
  12.     // Выполняем запрос и получаем файл
  13.     $res = mysql_query($query);
  14.     if ( mysql_num_rows( $res ) == 1 ) {
  15.       $image = mysql_fetch_array($res);
  16.       // Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
  17.       header("Content-type: image/*");
  18.       // И  передаем сам файл
  19.       echo $image['content'];
  20.     }
  21.   }
  22. }
  23. ?>


вывожу тут
PHP:
скопировать код в буфер обмена
  1. if ($student['foto']!=0)
  2. printf("<table width=500px border='0'>
  3.  <tr>
  4.    <td><p align='center'><<img src="mysite.com/image.php?id=1" width='175' height='220'/>",$student["foto"]);
  5. else
  6. printf("<table width=500px border='0'>
  7.  <tr>
  8.    <td><p align='center'><img src='img/none.jpg' width='175' height='220'/>",$student["foto"]);
  9.  
  10.        
 
 Top
eai
Отправлено: 30 Мая, 2012 - 17:13:16
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




Я бы не рекомендовал хранить картинку в виде BLOB в СУБД
Зачем? Раздуть базу?
Сохраните ее на диск таким образом что бы по учетной записи пользователя всегда можно было найти нужный файл.
 
 Top
Гость
Отправлено: 30 Мая, 2012 - 17:17:16
Post Id


УДАЛЁН










а как это реализовать?
 
 Top
eai
Отправлено: 30 Мая, 2012 - 17:32:10
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




progiii пишет:
а как это реализовать?


Я это стратегическим вопросы решаю Улыбка


Ну поищи "загрузка картинок на сервер" что ли ... не буду же я весь код тебе писать, прояви творчество и тягу к знаниям, заодно может еще попутно что пто познаешь Подмигивание
 
 Top
caballero
Отправлено: 30 Мая, 2012 - 17:33:46
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
Я бы не рекомендовал хранить картинку в виде BLOB в СУБД

напрасно
Цитата:
Зачем? Раздуть базу?

таблица в mysql это отдельный файл - вынести блобы в отдельную таблицу и никаких проблем

Цитата:
Сохраните ее на диск таким образом что бы по учетной записи пользователя всегда можно было найти нужный файл.

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


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Гость
Отправлено: 30 Мая, 2012 - 17:38:43
Post Id


УДАЛЁН










Но как мне вывести картинку из blob? у меня меня пока на компе сайт бд в денвере, страница в которой выводится картинка вообще не открывается
image.php
PHP:
скопировать код в буфер обмена
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. // Соединяемся с сервером БД
  3. mysql_connect ( 'localhost', 'root', '' );
  4. mysql_query( 'SET NAMES cp1251' );
  5. mysql_select_db ( 'images' );
  6.  
  7. if ( isset( $_GET['id'] ) ) {
  8.   // Здесь $id номер изображения
  9.   $id = (int)$_GET['id'];
  10.   if ( $id > 0 ) {
  11.     $query = "SELECT `student` FROM `foto` WHERE `id`=".$id; //таблица student в нем есть foto туда должны сохранятся фото
  12.     // Выполняем запрос и получаем файл
  13.     $res = mysql_query($query);
  14.     if ( mysql_num_rows( $res ) == 1 ) {
  15.       $image = mysql_fetch_array($res);
  16.       // Отсылаем браузеру заголовок, сообщающий о том, что сейчас будет передаваться файл изображения
  17.       header("Content-type: image/*");
  18.       // И  передаем сам файл
  19.       echo $image['content'];
  20.     }
  21.   }
  22. }
  23. ?>
  24.  


вывожу тут
PHP:
скопировать код в буфер обмена
  1. PHP:
  2. скопировать код в буфер обмена
  3. if ($student['foto']!=0)
  4. printf("<table width=500px border='0'>
  5. <tr>
  6.   <td><p align='center'><<img src="mysite.com/image.php?id=1" width='175' height='220'/>",$student["foto"]);
  7. else
  8. printf("<table width=500px border='0'>
  9. <tr>
  10.   <td><p align='center'><img src='img/none.jpg' width='175' height='220'/>",$student["foto"]);
  11.  
 
 Top
eai
Отправлено: 30 Мая, 2012 - 17:49:52
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




caballero пишет:

таблица в mysql это отдельный файл - вынести блобы в отдельную таблицу и никаких проблем

Ну оптимизировать хранение повсякому можно, но просто файл сделать наиболее простое и эффективное решение.

caballero пишет:

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

Откатить транзакцию ???? вы сейчас про MySQL Подмигивание Серьезно? Транзакция вэб запроса с сохранением аватарки ?
А если серьезно то из всего перечисленного актуальна только проблема бэкапа и переноса, тут вы правы.
 
 Top
caballero
Отправлено: 30 Мая, 2012 - 17:57:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
но просто файл сделать наиболее простое и эффективное решение

простое но не всегда эфективное.

Цитата:
Откатить транзакцию ???? вы сейчас про MySQL Серьезно? Транзакция вэб запроса с сохранением аватарки ?

я не знаю что там аватарка или еще что. Либо код нормально сделан либо нет. С чем он работает несущественно

(Отредактировано автором: 30 Мая, 2012 - 18:10:04)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Гость
Отправлено: 30 Мая, 2012 - 18:06:57
Post Id


УДАЛЁН










мне то что делать?
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Графика в PHP »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB