За последние 24 часа нас посетили 16617 программистов и 1649 роботов. Сейчас ищут 1995 программистов ...

update картинок в базe

Тема в разделе "PHP и базы данных", создана пользователем cloozis, 8 окт 2008.

  1. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    форма отправки (файл profile.php)
    --------------------------------------------------------------------------------------------------------------
    <? include_once("config.php");
    $resultray = mysql_query("SELECT * FROM users_list WHERE id='$id'");
    mysql_num_rows($resultray);
    $myrow = mysql_fetch_array($resultray);
    if($_POST["submit"]){
    field_validator("id", $_POST["id"], "string", 1, 9999999999999999999);

    }

    if(empty($messages)) {
    logo($_POST["id"], $_POST["userfile"], $_POST["MAX_FILE_SIZE"]);
    }

    ?>
    <FORM ENCTYPE="multipart/form-data" ACTION="profile.php?id=<? echo $myrow[id]; ?> " METHOD=POST>
    <input type="hidden" name="id" value="<? echo $myrow[id]; ?>">
    Имя файла: <INPUT NAME="userfile" TYPE="file">
    <INPUT TYPE="submit" VALUE="Отправить">
    (нажмите кнопку <b>ОБЗОР</b>, затем <b>ОТПРАВИТЬ</b>)
    </FORM>

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

    Функции (файл functions.php)


    function logo($id, $userfile) {

    global $link;

    $file = $userfile;
    $str = file_get_contents($file);
    $str = mysql_escape_string($str);

    $query=("UPDATE users_list SET logo='$str' WHERE id='$id'");
    $result=mysql_query($query, $link) or die("Died inserting login info into db. Error returned if any: ".mysql_error());

    return true;
    }
    ?>

    И так, поле logo в таблице users_list обновляется, но картинка в неё не добавляется, помогите пожалуста разобратся в чём же дело, есле таблица обновляется значит я гдето напортачил в строчках:
    $file = $userfile;
    $str = file_get_contents($file);
    $str = mysql_escape_string($str);

    ломаю голову... нефига не получается ...
     
  2. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а где она должна добавиться?

    з.ы. дай файловой системе делать своё дело, не перекладывай вывод файлов на mysql
     
  3. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    <?
    ... // подключение к Б.Д.
    $res=mysql_query("SELECT * FROM users_list WHERE id='$id'")
    or die("SQL ERROR in line ".__LINE__.", function mysql_query");
    $image=mysql_result($res, <строка>, <колонка> ); // берем переменную из б.д.
    header("Content-type: image/gif");
    echo $image;
    ?>

    я еще не совсем понимаю что есть <строка>, <колонка>... но примерно картинку берем отсюда
     
  4. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    Измени хотя бы на:
    PHP:
    1. <php
    2. $res = mysql_query("SELECT `logo` FROM `users_list` WHERE `id` = '$id'") or die("SQL ERROR in line ".__LINE__.", function mysql_query");
    3. list($image) = mysql_num_row($res);
    4. ?>
    Прочти: http://ru2.php.net/mysql_result
     
  5. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    так тебе выбрать из бд или обновить?
     
  6. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    обновить
     
  7. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а обновляешь здесь только «logo»
     
  8. Mete0

    Mete0 Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    272
    Симпатии:
    0
    Адрес:
    Gatchina
    А зачем там у него () ?
     
  9. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    ну мне и нужно только logo
     
  10. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    так, давай сначала
    как определил?

    какой тип у поля logo?
     
  11. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    blob , закачивал туда рисунок через пхп май админ, посе отправки в поле отображается - что в нем лежит файл 35кб , обнавляю через свой скрипт и поле обновляется на 0...
    по этому в строчках
    $file = $userfile;
    $str = file_get_contents($file);
    $str = mysql_escape_string($str);
    чтото не то... в итоге в запросе $str = ""; ...
     
  12. cloozis

    cloozis Активный пользователь

    С нами с:
    8 окт 2008
    Сообщения:
    75
    Симпатии:
    0
    Адрес:
    Russia
    в общем я так ничего и не понял с blob-ами... глючут они, а может у меня кривые руки, я относительно недавно влез в php, по этому не мудрено если я чето не догоняю, в общем мне никто так и не помог. решил пойти немного другим путем и написал так:

    function logo($id, $userfile) {

    global $link;

    $uploaddir = 'Z:/home/10.199.64.217/www/img/';
    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploaddir .
    $_FILES['userfile']['name'])) {
    $test = $_FILES['userfile']['name'];
    $query=("UPDATE users_list SET logo='$test' WHERE id='$id'");
    $result=mysql_query($query, $link) or die("Died inserting login info into db. Error returned if any: ".mysql_error());
    print "Файл успешно загружен.";
    print "<pre>";
    print_r($_FILES);
    print "<pre>";
    print "Фотография успешно обновлена <a href='profile.php?id=$id'>вернитесь на свою страницу профиля</a>";
    exit ();
    } else {

    }
    return true;
    }

    как сюда запиндюрить
    1. чтоб файл переимяновывался на предположим индефикатор?
    2. $uploaddir = 'Z:/home/10.199.64.217/www/img/'; можно ли как нибудь зделать так чтоб $uploaddir не требовал полный путь к папке а только к $host/img/ ??