Sign in to follow this  
quero

Как сохранить URL картинки в MYSQL?

Recommended Posts

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

Share this post


Link to post
Share on other sites

В базе лучше хранить только названия картинок и, допустим, конкретную папку, в которой они лежат. А URL задавать при выводе картинок, в PHP-скрипте. Это, во-первых, сэкономит ресурсы БД, а во-вторых, любое последующее редактирование станет проще.

Что до сути, то попробуй вот так:

/* HTML-форма */

/* В атрибуте action - имя твоего скрипта. */

/* Фича для загрузки рисунка. */

/* Кнопка подтверждения. */

<?php

/* Подключение к БД. Нужно имя сервера (если на одном сервере со скриптом - localhost), логин и пароль: */

$db = mysql_connect('localhost','login','password');

/* Указание, с какой именно БД будем работать: */

mysql_select_db('databasename',$db);

/* Если нажата кнопка... */

if(isset($_POST['ok'])) {

/* Если файл выбран... */

if(!empty($_FILES['pic']['name'])) {

/* Если он загружен... */

if(is_uploaded_file($_FILES['pic']['tmp_name'])) {

/* Называем папку для сохранения на сервере... */

$path = 'folder/';

/* Иногда, а также в том случае, если ты вс? же намереваешься сохранять URLы в БД, нужно писать так: $path = GetCWD().'/folder/'; */

/* Если файл туда скопирован... */

if(copy($_FILES['pic']['tmp_name'],$path.$_FILES['pic']['name'])) {

/* Пишем в БД */

$sql = "INSERT INTO `tablica` ( `pole_id` , `pole_pic` ) VALUES ('','".$_FILES['pic']['name']."');";

/* Если ты выбрал вариант с сохранением URLов, пиши так:

$sql = "INSERT INTO `tablica` ( `pole_id` , `pole_pic` ) VALUES ('','".$path.$_FILES['pic']['name']."');";

*/

mysql_query($sql,$db);

/* Теперь выбираем из БД в массив: */

$sql = "SELECT `pole_pic` FROM `tablica`;";

$res = mysql_query($sql,$db);

$row = mysql_fetch_array($res);

/* И выводим: */

echo ''.$row['pole_pic'].'"';

/* Убиваем массив и запрос: */

unset($row);

mysql_free_result($res);

};

};

};

};

/* Закрываем БД. */

mysql_close($db);

?>

Share this post


Link to post
Share on other sites

Естественно, если у тебя в таблице не одна пикчура, запрос к БД должен быть поконкретнее :D

Можно так:

SELECT `pole_pic` FROM `tablica` WHERE `pole_id` = '1';

Дамп таблицы - примерно вот такой:

CREATE TABLE `tablica` (

`pole_id` INT NOT NULL AUTO_INCREMENT ,

`pole_pic` VARCHAR( 255 ) NOT NULL ,

PRIMARY KEY ( `id` )

);

Т.е. должно быть поле-первичный ключ с AUTO_INCREMENT и поле для имени картинки.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Member Statistics

    46,511
    Total Members
    3,128
    Most Online
    Marking
    Newest Member
    Marking
    Joined
  • Recently Browsing   0 members

    No registered users viewing this page.