За последние 24 часа нас посетили 15759 программистов и 1664 робота. Сейчас ищут 840 программистов ...

Вывод фото из базы.

Тема в разделе "PHP для новичков", создана пользователем 1Touch2Heaven, 10 фев 2009.

  1. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Вы же используете JPEG!!!

    Замените
    на
    Код (Text):
    1. $_FILES["file_name"]["type"] == 'image/jpeg'
     
  2. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    Unicross, да изменил уже давно)) Ещё до того как написал сюда... Перезагрузился - начал добавлять... Крайний вопрос:

    img.php
    Код (Text):
    1.  
    2. <?php
    3. error_reporting(E_ALL);
    4. if ( !isset($_GET['id']) ) exit();
    5. $link = mysql_connect("localhost", "root", "") or die("Не могу подключиться");
    6. mysql_select_db('personal') or die ('Не могу выбрать БД');
    7. $query = "SELECT `img` FROM `img` WHERE `id`=" . intval($_GET['id']);
    8. $result = mysql_query($query);
    9. if (mysql_num_rows($result) == 0) { echo "Нет картинки"; exit(); }
    10. $r = mysql_fetch_array( $result );
    11. header("Content-Type: image/jpeg");
    12. echo $r['img'];
    13. mysql_close($link);
    14. ?>
    матерится на строку в файле,к оторый на просмотр выводит... чуть выше Вы мне говорили так её заменить...
    Код (Text):
    1. echo "<td><img src="img.php?id=".$row['id'].'"></td>\n</tr>\n";
    причем пишет что ожидается , или ;.... чего хочет?
     
  3. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Кавычка лишняя вот и матерится
     
  4. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    ок. спасибо. в целом принцип ясен. дальше уже сам как-нибудь. будете у нас - заходите.
     
  5. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    эх, всё равно не работает....

    код добавления фотографии в базу:
    PHP:
    1.  
    2. <HTML>
    3. <HEAD>
    4. <TITLE>Загрузка файлов</TITLE>
    5. </HEAD>
    6. <BODY>
    7. <B>Загрузка фотографии</B>
    8. <BR>
    9. <FORM method="POST" enctype="multipart/form-data">
    10. <INPUT type="file" name="file_name">
    11. <INPUT type="submit" value="Загрузить">
    12. </FORM>
    13. <?php
    14. if(isset($_FILES["file_name"]) && $_FILES["file_name"]["error"] == 0
    15. && $_FILES["file_name"]["size"] > 0 && $_FILES["file_name"]["type"] == 'image/jpeg') {
    16. $foto = file_get_contents( $_FILES["file_name"]["tmp_name"] );
    17. $link = mysql_connect("localhost", "root", "") or die("Не могу подключиться");
    18. mysql_select_db('personal') or die ('Не могу выбрать БД');
    19. $foto = mysql_real_escape_string($foto);
    20. $q = "Update promo set photo_1='" . $foto . "' where id='40'";
    21. print_r($_FILES["file_name"]);
    22. if (mysql_query($q)) echo "Файл загружен";
    23. else echo "Ошибка при загрузке";
    24. mysql_close($link);
    25. }
    26. ?>
    27. </BODY>
    28. </HTML>
    29.  
    работает. По крайней мере смело выводит что Файл загружен.

    Проблема возникла на самом последнем этапе - выводе из базы.. Причем это действительно крайний этап моей работы... Остальное все готово...
    Код, который не работает у меня:
    PHP:
    1.  
    2. <?php
    3. if ( !isset($_GET['id']) ) exit();
    4. $link = mysql_connect("localhost", "root", "") or die("Не могу подключиться");
    5. mysql_select_db('personal') or die ('Не могу выбрать БД');
    6. $query = "SELECT `photo_1` FROM `promo` WHERE `id`=" . intval($_GET['id']);
    7. $result = mysql_query($query);
    8. if (mysql_num_rows($result) == 0) { echo "Нет картинки"; exit(); }
    9. $r = mysql_fetch_array( $result );
    10. header("Content-Type: image/jpeg");
    11. echo $r['img'];
    12. mysql_close($link);
    13. ?>
    14.  
    Если ему задать id записи где photo_1 пустое он уверенно пишет: Нет картинки)))
    Зато как только даешь ему id поля где эта картинка присутствует, выдаёт следующее:

    Причем самое забавное, что эту в принципе текстовую строку браузер расценивает как изображение.....:shock:
    что делать? :?: Нид хелп.... Спасибо заранее всем... [/quote]
     
  6. DukeNukem

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

    С нами с:
    12 фев 2009
    Сообщения:
    15
    Симпатии:
    0
    Я вот читаю и думаю а зачем собственно грузить картинки в базу?
    А нельзя ли добавить к имени картинки тайм стамп, получив таким образом уникальную ссылку.
    Вы ведь подумайте - 300 метров картинок на диске - это мелочь, а 300 метров картинок в базе - это большая проблема в виде нагрузки на сервер при sql запросах.

    Жаль что вы не думаете что когда база разрастется до неимоверных размеров - хостер попросит вас уменьшить нагрузку на сервер либо перейти на более дорогой пакет :)
     
  7. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    Уважаемый DukeNukem, начнем с того, что хостер не попросит и это раз..... Это даже главное и основное...
    Зачем грузить картинки в базу? Да вот как раз за тем, что в задании четко прописано, что КАРТИНКИ ДОЛЖНЫ БЫТЬ ЗАГРУЖЕНЫ В БАЗУ.... Яж не каммикадзе, поверьте мне и прекрасно понимаю, что за собой это влечет...

    Но продолжим... Поковырявшись ещё несколько часов сделал поразительное для себя открытие )))
    Если под картинки сделать отдельную таблицу,с полями img_id и img и сделать так, как говорил unicross, то все работает... и вывод и прочее.... Блин, но как только я пытаюсь добавить в свою таблицу - швах....

    Я вот тут подумал, может я накосячил когда создавал таблицу? Возможен такой вариант?
    Просто я продумываю мысль мож тогда вести 2 таблицы? Одна - исключительно анкетные данные, а вторая, исключительно фото? Записи идентифицировать по одинаковости id.... По такому же критерию проводить редактирование записи и её удаление.... Как думаете? Или слишком сложно получится?
     
  8. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    1Touch2Heaven, наверное название поля надо то же заменить...
    PHP:
    1. echo $r['photo_1'];
     
  9. 1Touch2Heaven

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

    С нами с:
    11 янв 2009
    Сообщения:
    70
    Симпатии:
    0
    Адрес:
    Калининград
    о господи.... Вот я тормоз.... Убейте меня..... Глаз забит уже настолько, что не вижу вообще ничего......