Знаю. Таких тем в сети выше башни. Однако что-то не получается, не могу понять. В принципе, все должно быть просто. код добавления данных в таблицу: Код (Text): <? $hostname = "localhost"; $username = "root"; $password = ""; $dbName = "personal"; $table = "promo"; mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение"); mysql_select_db($dbName) or die (mysql_error()); $query = "INSERT INTO $table SET fname='".$_POST['fname']."', sname='".$_POST["sname"]."', tname='".$_POST["tname"]."', date_birth='".$_POST["date_birth"]."', pas_ser='".$_POST["pas_ser"]."',pas_num='".$_POST["pas_num"]."',vidan_who='".$_POST["vidan_who"]."', vidan_when='".$_POST["vidan_when"]."',liveplace_city='".$_POST["liveplace_city"]."', liveplace_street='".$_POST["liveplace_street"]."',liveplace_house='".$_POST["liveplace_house"]."', liveplace_flat='".$_POST["liveplace_flat"]."',flat_phone='".$_POST["flat_phone"]."', mobile_phone='".$_POST["mobile_phone"]."',drive_lic='".$_POST["drive_lic"]."',photo_1='".$_POST["photo_1"]."'"; mysql_query($query) or die(mysql_error()); mysql_close(); echo ("<div style=\"text-align: center; margin-top: 10px;\"> <font color=\"green\">Данные успешно сохранены!</font> <br /><br /> <a href=\"index.html\">Вернуться назад</a></div>"); ?> все хорошо. скрипт данные записывает в таблицу, включая в поле photo_1. (тип поля blob) Если войти в phpMyAdmin, то в этом поле для каждой записи стоит что-то вроде [BLOB - 13 Bytes]. Я так понимаю что изображения в базе размещаются. При попытке их вывести оттуда: Код (Text): <? $hostname = "localhost"; $username = "root"; $password = ""; $dbName = "personal"; $table = "promo"; mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение"); mysql_select_db($dbName) or die (mysql_error()); $query = "SELECT fname,sname,tname,sex,date_birth, pas_ser,pas_num,vidan_who,vidan_when,liveplace_city,liveplace_street,liveplace_house, liveplace_flat,flat_phone,mobile_phone,drive_lic,photo_1 FROM $table"; $res = mysql_query($query) or die(mysql_error()); echo (" <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> <title>Вывод данных</title> <style type=\"text/css\"> <!-- body { font: 12px Georgia; color: #666666; } h3 { font-size: 16px; text-align: center; } table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; } td { padding: 3px; text-align: center; vertical-align: middle; } .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; } --> </style> </head> <body> <h3>Вывод ранее сохраненных данных</h3> <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\"> <tr style=\"border: solid 1px #000\"> <td align=\"center\"><b>Фамилия</b></td> <td align=\"center\"><b>Имя</b></td> <td align=\"center\"><b>Отчество</b></td> <td align=\"center\"><b>Дата рождения</b></td> <td align=\"center\"><b>Фото</b></td> </tr>"); while ($row = mysql_fetch_array($res)) { echo "<tr>\n"; echo "<td>".$row['sname']."</td>\n"; echo "<td>".$row['fname']."</td>\n"; echo "<td>".$row['tname']."</td>\n"; echo "<td>".$row['date_birth']."</td>\n"; echo "<td>".$row['photo_1']."</td>\n</tr>\n"; } echo ("</table>\n"); mysql_close(); echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>"); ?> Все строки заполняет нормально, а в столбце Фото дает просто название файла (я так понял) Собственно вопрос, как сделать так, чтобы он давал нормальное изо необходимых размеров... Если можно, расскажите немного поподробнее, я хоть и новичок совсем, но учусь быстро.. Просто уже тормоз, за сутки сидения(
где-то видел, люди писали, что плохо хранить картинки в бд, как по мне лучше их хранить в папке... в бд залей путь к картинке а саму ее положи куда-то... ---- а перед этим PHP: <?php ...',photo_1='".$_POST["photo_1"]."... ты, что-то с картинкой делал? или как ты ее обрабатываешь перед заливкой в бд... ?
Код (Text): <input type="file" name="photo_1" size="27"> я прямо из формы пытаюсь передать... Да, я тоже читал, что не рекомендуется в базе хранить фото, но в моем случае, нужна такая система, чтобы она автоматически аплоад делала фото на серв и прописывала ссылку на неё... Это мне точно не потянуть(((
Код (Text): <? $hostname = "localhost"; $username = "root"; $password = ""; $dbName = "personal"; $table = "promo"; mysql_connect($hostname, $username, $password) or die ("Не могу создать соединение"); mysql_select_db($dbName) or die (mysql_error()); $del = $query = "delete from $table where (id='$del')"; mysql_query($query) or die(mysql_error()); $query = "SELECT * FROM $table"; $res = mysql_query($query) or die(mysql_error()); $row = mysql_num_rows($res); echo (" <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\"> <html xmlns=\"http://www.w3.org/1999/xhtml\"> <head> <meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1251\" /> <title>Вывод и удаление данных</title> <style type=\"text/css\"> <!-- body { font: 12px Georgia; color: #666666; } h3 { font-size: 16px; text-align: center; } table { width: 700px; border-collapse: collapse; margin: 0px auto; background: #E6E6E6; } td { padding: 3px; text-align: center; vertical-align: middle; } .buttons { width: auto; border: double 1px #666666; background: #D6D6D6; } --> </style> </head> <body> <h3>Вывод и удаление ранее сохраненных данных</h3> <table border=\"1\" cellpadding=\"0\" cellspacing=\"0\"> <tr style=\"border: solid 1px #000\"> <td><b>#</b></td> <td align=\"center\"><b>Фамилия</b></td> <td align=\"center\"><b>Имя</b></td> <td align=\"center\"><b>отчество</b></td> <td align=\"center\"><b>Фото</b></td> </tr> "); while ($row = mysql_fetch_array($res)) { echo "<tr>\n"; echo "<td>".$row['id']."</td>\n"; echo "<td>".$row['sname']."</td>\n"; echo "<td>".$row['fname']."</td>\n"; echo "<td>".$row['tname']."</td>\n"; echo "<td>".$row['photo_1']."</td>\n"; echo "<td><a name=\"del\" href=\"del_data.php?del=".$row["id"]."\">Удалить</a></td>\n"; echo "</tr>\n"; } echo ("</table>\n"); mysql_close(); echo ("<div style=\"text-align: center; margin-top: 10px;\"><a href=\"index.html\">Вернуться назад</a></div>"); ?> пытаюсь проработать механизм удаления записи. Ссылки генерит нормально, все вроде ок, а не удаляет.. в ошибку не падает... где я ошибся?
1. пиши пжл в тегах php с открывающим <?php для читабельности... 2. я так понял это скрипт del_data.php который вызывает сам себя... при нажатии удалить...? 3. попробуй так... PHP: <?php $del = $_GET['del']; $query = "delete from $table where id='$del'"; 4. удали тут "$del" $query = "delete from $table ... зачем оно нужно... 5. называй переменные разными именами там много одноименных 6. желательно, что б mysql_connect возвращал тебе результат подключения в переменную...
1Touch2Heaven это вы так картинку выводите???? Выводить надо так: Код (Text): echo '<td><img src="script.php?id='.$row['id'].'"></td>'; В script.php уже выводите картинку из базы по id...
2 alexeurodnepr, unicross спасибо за советы... И вообще спасибо, что с новичком возитесь.... сейчас буду пробовать...
можно глупый вопрос? я в принципе про картинку вопрос то и задал, что я даже в скрипт не могу по id её вывести, а только имя файла ((
во как.... вроде картинку... но как её оттуда забрать?))) Эта зараза все равно упорно выводит мне имя самого файла.....(((
у меня тут возникает интересный тогда вопрос... возможно скрипт сохраняет там имя файла? ((( звезда в шоке(( ч.д.?
так.. в таблице тип поля blob, MIME-тип image/jpeg, трансформация броузера не стоит, но я уже потыркал - ничего не меняется... данные добавляются... хотя я это уже выше писал(( и действительно! имя файла nightmare.jpg, в поле попадает 13 байт.... ровняк сколько символов в названии... вопрос: подскажите пожалуйста, как правильно загрузить картинку в базу?
я это читал))) спасибо))) Но у меня же не просто 1 файл взял и загрузил.... у меня форма на 20 полей(
я взял код, который разместили Вы: Код (Text): <HTML> <HEAD> <TITLE>Загрузка файлов</TITLE> </HEAD> <BODY> <B>Загрузка файлов</B> <BR> <FORM method="POST" enctype="multipart/form-data"> <INPUT type="file" name="file_name"> <INPUT type="submit" value="Загрузить"> </FORM> <?php error_reporting(E_ALL); if(isset($_FILES["file_name"]) && $_FILES["file_name"]["error"] == 0 && $_FILES["file_name"]["size"] > 0 && $_FILES["file_name"]["type"] == 'image/gif') { $foto = file_get_contents( $_FILES["file_name"]["tmp_name"] ); $link = mysql_connect("localhost", "root", "") or die("Не могу подключиться"); mysql_select_db('tests') or die ('Не могу выбрать БД'); $foto = mysql_real_escape_string($foto); $q = "insert into `img` values (NULL, '" . $foto . "')"; if (mysql_query($q)) echo "Файл загружен"; else echo "Ошибка при загрузке"; mysql_close($link); } ?> </BODY> </HTML> сделал так же таблицу... в общем все как описано в топике, который Вы указали....
Посмотрите код в переменной $_FILES["file_name"]["error"] или выведите полностью массив Код (Text): print_r($_FILES["file_name"]);
Array ( [name] => x_0eba1b1e.jpg [type] => image/jpeg [tmp_name] => Z:\tmp\php22.tmp [error] => 0 [size] => 25002 )