всем привет. помогите решить следующую задачку. Суть: картинки добавляются в ьазу данных. неудаётся вывести. вместо картинки выводит 0 база mysql: два поля, в поле куда записывается картинка имеет тип bloob код формы добавления Код (Text): <? function show_form(){ // подключаем файл с настройками подключения к БД require '../inc/connect.php'; //делаем запрос к БД, на данный момент на следующие две строчки не стоит обращать внимание, объясню их потом, посокльку на данном этапе они еще не используются. $result = mysql_query("SELECT * FROM pages WHERE id = '".$_GET['id']."';", $link); $row = mysql_fetch_array($result); ?> <!-- далее идет обычный HTML --> <form method="post" action=""> <p> Photo: </p> <input type="hidden" name="size" value="350000"> <input type="file" name="body"> <p> Please Enter any other information about the band member here. </p> <input type="submit" value="отправить" name="edit"> </form> // <?php } // функция show_form() закончилась function complete(){ // подключаем файл с настройками подключения - это мы уже знаем. require '../inc/connect.php'; // делаем запрос к БД в котором пытаемся вытащить страничку с указаным id. На данный момент мы не сделали еще ни одной страницы, посему запрос вернет пустой ряд. $result = mysql_query("SELECT * FROM pages WHERE id = '".$_POST['id']."';", $link); // перекидываем данные из MySQL в пхпшный ассоциативный массив $row = mysql_fetch_array($result); // проверяем не пуст ли элемент массива id. Если пуст, значит вставляем наши данные в БД if(empty($row['id'])) $query = "INSERT INTO pages (body) VALUES ('".mysql_real_escape_string($_POST['body'])."' )"; // а вот если не пуст, значит с этим id уже есть запись и в данном случае мы ее просто отредактируем else $query = "UPDATE pages SET body = '".mysql_real_escape_string($_POST['body'])."' WHERE id = '".$_POST['id']."';"; // непосредственно записываем наши данные в базу (до этого мы просто описывали, что надо сделать, а теперь делаем) mysql_query($query, $link); // ну и просто выводим крикливую надпись, что скрипт отработал echo '<h3>Данные обновлены</h3>'; } function show_pages() { require '../inc/connect.php'; echo ' <table cellspacing="1" cellpadding="2" bgcolor="#1F2760"> <tr bgcolor="#B0ADC3"> <td> <a href="?id=new">Добавить страницу</a> </td> </tr> </table>'; echo ' <table cellspacing="1" cellpadding="2" bgcolor="#1F2760"> <tr bgcolor="#B0ADC3"> <td> <b>Номер страницы</b> </td> </tr>'; $result = mysql_query("SELECT * FROM pages ORDER BY id;", $link); while($row = mysql_fetch_array($result)){ echo ' <tr bgcolor="#ffffff"> <td> <a href="?id='.$row['id'].'">'.$row['id'].'</a> </td> </tr>'; } echo ' </table>'; } // функция настолько простая, что мне даже и объяснять там нечего. Опять идет обычный html, в котором встречается запрос к БД, в котором мы просим вывести все наши записи отсортировав их по id. Соответственно, каждый полученный из базы id мы выводим ссылкой, чтобы в него можно было зайти. Короче, ща запустим и будет все понятно ;-) if($_POST['edit']) complete(); // если была нажата кнопочка "отправить", которая именуется edit - тогда вызываем функию complete() if($_GET['id']) show_form(); // если мы нажали на ссылку в функции show_pages(), то значит мы передали в переменную $_GET['id'] тот самый id, который нас интересует. Поэтому в этом слчае вызываем форму редактирования нашей странички. else show_pages(); // ну, а если мы не выбрали определенный id - запускаем нашу функцию выбора id. ?> вот код вывода Код (Text): <? require 'connect.php'; //htmlspecialchars() Преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались. $_GET['id'] = htmlspecialchars($_GET['id']); // если у нас не запрашивали никакую определенную страницу, то будем выводить нашу самую первую. Если Вы ее давно удалили, поставьте вместо единички идентификатор той странички, которую Вы хотели бы грузить по умолчанию if(empty($_GET['id'])) $_GET['id'] = 1; $result = mysql_query("SELECT * FROM pages WHERE id = '".$_GET['id']."';", $link); $row = mysql_fetch_array($result); ?> <html> <head> <title></title> </head> <body> <!-- меню делаем ручками, по принципу: --> <a href="?id=1">первая страница</a> <a href="?id=9">вторая страница</a> <a href="?id=8">контакты</a><br /><br /> <?//stripslashes() - Удаляет экранирование символов - а их мы понаставили в админке, когда загружали данные в базу с помощью функции mysql_real_escape_string()?> <?=stripslashes($row['body']);?> <? // 25 $Row = mysql_query("SELECT * FROM pages WHERE id = '".$_GET['id']."';", $link); print $Row["pages"]; ?> </body> </html> помогите срочно надо.
хранение картинок в базе - зло это даже для простых данных ппц, чего уж там говорить о картинках... и ЭТО должно выводить картинку посреди формы? по-мойму ты что-то попутал. а по теме: забыл enctype="multipart/form-data" файлы загружаются в суперглобальный массив $_FILES, и никак не $_POST раздел фриланса ниже. там сделают быстро, качественно и, главное, недорого.
Gromo спасибо за совет. а все остальные видно ахзбуку забыли. я не просил вас критику расписывать, а написал чтобы получить помощь. о вас у меня скалось впечатление как о балаболах, кроме Gromo
Мне пофиг на твое впечатление. Сегодня ты тут есть, завтра ты забудешь про форум. Просил - не просил. Это форум, тут говорят все, что хотят, только не нарушая правила. Тем более, что помощь бесплатная, поэтому приходиться довольствоваться тем, что есть, а не возмущаться. Это неуважение к нам.
Kreker абсолютно согласен. danila я тебе описал основные ошибки, и основные пути решения. добавлять было нечего, потому остальные просто приняли участие в обсуждении - они комментировали мой пост, а не твой.