форма отправки (файл 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); ломаю голову... нефига не получается ...
а где она должна добавиться? з.ы. дай файловой системе делать своё дело, не перекладывай вывод файлов на mysql
<? ... // подключение к Б.Д. $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; ?> я еще не совсем понимаю что есть <строка>, <колонка>... но примерно картинку берем отсюда
Измени хотя бы на: PHP: <php $res = mysql_query("SELECT `logo` FROM `users_list` WHERE `id` = '$id'") or die("SQL ERROR in line ".__LINE__.", function mysql_query"); list($image) = mysql_num_row($res); ?> Прочти: http://ru2.php.net/mysql_result
blob , закачивал туда рисунок через пхп май админ, посе отправки в поле отображается - что в нем лежит файл 35кб , обнавляю через свой скрипт и поле обновляется на 0... по этому в строчках $file = $userfile; $str = file_get_contents($file); $str = mysql_escape_string($str); чтото не то... в итоге в запросе $str = ""; ...
в общем я так ничего и не понял с 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/ ??