За последние 24 часа нас посетили 55448 программистов и 1795 роботов. Сейчас ищут 776 программистов ...

Помогите пожалуйста!

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

  1. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Поставил задачу:
    1.Форма ввода номера картинки
    2.После введенного значения посылается запрос на БД
    3.Вывод картинки ,вбитой в базу данных,которую ввел в пункте один.
    Например:
    1.Я ввел в поле цифру 1
    2.Он обрабатывает и посылает запрос на БД с чтением именно той строки где поле принимает значение введенной цифры(в данном случае 1)
    3.Выводит значение строки БД.

    Вод мой код:
    <form action="show.php" method=POST>
    <input type="text" name="ID">
    <input type="submit" value="Отправить">
    </form>
    <?php
    $link=mysql_connect("localhost", "root", "")
    or die("Не могу подключиться");
    print ("Соединение выполнено");
    mysql_select_db('work', $link) or die ('Не могу выбрать БД');
    $query="SELECT * FROM work WHERE img='".$_POST["id"]."'";
    $result=mysql_query($query);
    while($r=mysql_fetch_row($result)){
    echo "$r";
    }
    mysql_close($link);
    ?>

    но он не работает(((
    помогите пожалуйста!
     
  2. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Имя поля набрано в верхнем регистре, а получаете в нижнем. Исправляйте...
     
  3. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Спасибо,но тут возникает ошибка:

    Код (Text):
    1. <form action="show.php" method=POST>
    2. <input type="text" name="id">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <?php
    6. $link=mysql_connect("localhost", "root", "")
    7. or die("Не могу подключиться");
    8. print ("Соединение выполнено");
    9. mysql_select_db('work', $link) or die ('Не могу выбрать БД');
    10. $query="SELECT img FROM work WHERE img="intval($_POST['id'])";
    11. $result=mysql_query($query);
    12. while($r=mysql_fetch_row($result)){
    13. echo $r[img];
    14. }
    15. mysql_close($link);
    16. ?>
    Parse error: parse error, unexpected T_STRING in z:\home\custom\localhost\my\id\show.php on line 10
     
  4. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Да мне хотя бы если заполнена сделать...
     
  5. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Чушь написали...
    PHP:
    1. $query="SELECT `img` FROM `work` WHERE `img`=" . intval($_POST['id']);
     
  6. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Все ввел,тогда возникает такая ошибка:
    Parse error: parse error, unexpected '"' in z:\home\custom\localhost\my\id\show.php on line 10

    Код (Text):
    1. <form action="show.php" method=POST>
    2. <input type="text" name="id">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <?php
    6. $link=mysql_connect("localhost", "root", "")
    7. or die("Не могу подключиться");
    8. print ("Соединение выполнено");
    9. mysql_select_db('work', $link) or die ('Не могу выбрать БД');
    10. $query="SELECT 'img' FROM 'work' WHERE 'img'=" . intval($_POST['id'])";
    11. $result=mysql_query($query);
    12. while($r=mysql_fetch_row($result)){
    13. echo $r[img];
    14. }
    15. mysql_close($link);
    16. ?>
    [/code]
     
  7. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Замените наконец на
    PHP:
    1. $query="SELECT `img` FROM `work` WHERE `img`=" . intval($_POST['id']);
    И исправьте, наконец, ошибки!!!!
     
  8. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Код (Text):
    1. <form action="show.php" method=POST>
    2. <input type="text" name="id">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <?php
    6. $link=mysql_connect("localhost", "root", "")
    7. or die("Не могу подключиться");
    8. print ("Соединение выполнено");
    9. mysql_select_db('work', $link) or die ('Не могу выбрать БД');
    10. $query="SELECT 'img' FROM 'work' WHERE 'id'=" . intval($_POST['id']);
    11. $result=mysql_query($query);
    12. while($r=mysql_fetch_row($result)){
    13. echo $r[img];
    14. }
    15. mysql_close($link);
    16. ?>

    Запрос делаю через ид,где ид=полю введному в форме,вывожу img.

    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in z:\home\custom\localhost\my\id\show.php on line 12
     
  9. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Покажите структуру таблицы (SQL-запрос для создания)

    Dimon1987 вы будете исправлять ошибки или нет????
     
  10. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Ошбику исправил.

    Вот SQL-запрос

    CREATE TABLE img (
    id varchar(15) NOT NULL DEFAULT '0' ,
    img varchar(15) NOT NULL DEFAULT '0' ,
    PRIMARY KEY (id)
    );
     
  11. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Почему у вас поле id символьного типа?

    Замените на
    Код (Text):
    1. CREATE TABLE work (
    2. id int(11) NOT NULL auto_increment,
    3. img varchar(15) NOT NULL DEFAULT '0',
    4. PRIMARY KEY (id)
    5. );
    Почему ваша таблица называется img??? Подключаетесь вы к work !!!!

    База данных и таблица имеют одно название ???
     
  12. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Все поменял:
    Код (Text):
    1. <form action="show.php" method=POST>
    2. <input type="text" name="id">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <?php
    6. $link=mysql_connect("localhost", "root", "")
    7. or die("Не могу подключиться");
    8. print ("Соединение выполнено");
    9. mysql_select_db('work', $link) or die ('Не могу выбрать БД');
    10. $query="SELECT 'img' FROM 'img' WHERE 'id'=" . intval($_POST['id']);
    11. $result=mysql_query($query);
    12. while($r=mysql_fetch_row($result)){
    13. echo $r['img'];
    14. }
    15. mysql_close($link);
    16. ?>
    БД называется work,таблица называется img,а в нем два поля: img и id
    Sql-запрос тоже изменил,все равно выскакивает ошибка:
    Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in z:\home\custom\localhost\my\id\show.php on line 12
     
  13. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Код (Text):
    1. mysql_fetch_row
    замените на
    Код (Text):
    1. mysql_fetch_array
    Исправьте наконец ошибку в этой строке.
    PHP:
    1. $query="SELECT `img` FROM `img` WHERE `id`=" . intval($_POST['id']);
    Кавычки должны быть обратными, а не прямыми!!!
     
  14. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    О дА!!!!
    Огромное спасибо))
    Удивляюсь вашему терпению,))все работает,только вот у меня не выполнена одна из суб-задач:
    Нужно только чтобы выводилось не текстовое значение а рисунок.Как это примерно можно сделать вообще?
     
  15. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Хранить картинки в базе данных это плохая идея. Картинки нужно хранить в файловой системе, а в базе текстовые ссылки на эти картинки. Затем выводить с помощью скрипта или просто ссылку.

    А вообще поле типа MEDIUMBLOB или LONGBLOB. Заносим туда картинку, а затем выводим выдавая заголовок
    PHP:
    1. header("Content-type: image/<Тип картинки>");
    Обратите внимание! В этом файле не может быть никакой формы... и любого другого вывода кроме картинки.
     
  16. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    а в какое поле заносить этот код?[/php]
     
  17. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    В смысле??? Этот код должен быть в скрипте, а не в базе данных...
     
  18. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    А если поступить по первому способу,как вы рекомендуете:
    В поле "pic"(в базе данных естественно) ввожу текстовую ссылку на картинку,картинку храню в файловой системе,а как записать скрипт для вывода картинки(не для ссылки)?
     
  19. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    PHP:
    1. <?php
    2. $path="namefilename.doc"; // Получен из базы данных
    3. if(!file_exists($path)) {
    4.    echo "Файл не найден";
    5. }
    6. else {
    7.    $size=filesize($path);
    8.    header("Content-Type: image/gif");
    9.    header("Content-Length: $size");
    10.    readfile($path);
    11. }
    12. ?>
    Путь должен быть в файловой системе, а не внешний...
    В этом файле не может быть формы!!!

    Вывод в браузер обычным образом
    Код (Text):
    1. <img src="script.php?id=1">
     
  20. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    PHP:
    1.  
    2. $path="namefilename.doc"; // Получен из базы данных
    3.  
    Путь должен быть в файловой системе, а не внешний...
    В этом файле не может быть формы!!!

    Вывод в браузер обычным образом
    Код (Text):
    1. <img src="script.php?id=1">
    [/quote]
    Извини,а как я вобью в базу данных формат doc,(вы уж извините я просто БД только начал изучать...)?
    И Куда происывать:
    Код (Text):
    1. <?php
    2.  $path="pic.doc"; // Получен из базы данных
    3.  if(!file_exists($path)) {
    4.    echo "Файл не найден";
    5.  }
    6.  else {
    7.    $size=filesize($path);
    8.    header("Content-Type: image/jpg");
    9.    header("Content-Length: $size");
    10.    readfile($path);
    11.  }
    12.  ?>
    13. <img src="script.php?id=1">
    в один и тот же файл ,который вы мне помогали делать до этого?
     
  21. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    В вашем случае это будет картинка с расширениями .gif, .jpg, .png и др.

    50 на 50.
    Форму нужно убрать. Метод меняем на GET и соответственно получаем id из массива $_GET.
    Остальное точно также только путь
    PHP:
    1. $path = $r['img'];
     
  22. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    А какую именно форму нужно убрать?
    <img src="script.php?id=1"> эту??

    вот код:
    PHP:
    1. <form action="show.php" method=GET>
    2. <input type="text" name="id">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <?php
    6. $link=mysql_connect("localhost", "root", "")
    7. or die("Не могу подключиться");
    8. print ("");
    9. mysql_select_db('work', $link) or die ('Не могу выбрать БД');
    10. $query="SELECT `pic` FROM `img` WHERE `id`=" . intval($_GET['id']);
    11. $result=mysql_query($query);
    12. while($r=mysql_fetch_array($result)){
    13. echo $r['pic'];
    14. }
    15. mysql_close($link);
    16.  
    17. $path = $r['img']; // Получен из базы данных
    18.  if(!file_exists($path)) {
    19.    echo "Файл не найден";
    20.  }
    21.  else {
    22.    $size=filesize($path);
    23.    header("Content-Type: image/jpg");
    24.    header("Content-Length: $size");
    25.    readfile($path);
    26.  }
    27.  ?>
    Картинку не выводит(

    и что значит по вашему 50 на 50?
     
  23. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    удалите эту строку

    Убрать надо
    Перед <?php не должно быть пустой строки!!!

    замените на
    PHP:
    1. $r=mysql_fetch_array($result);
    2. $path = $r['pic'];
     
  24. Dimon1987

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

    С нами с:
    17 янв 2009
    Сообщения:
    36
    Симпатии:
    0
    Код (Text):
    1. <form action="show.php" method=GET>
    2. <input type="text" name="id">
    3. <input type="submit" value="Отправить">
    4. </form>
    5. <?php
    6. $link=mysql_connect("localhost", "root", "")
    7. or die("Не могу подключиться");
    8. print ("");
    9. mysql_select_db('work', $link) or die ('Не могу выбрать БД');
    10. $query="SELECT `pic` FROM `img` WHERE `id`=" . intval($_GET['id']);
    11. $result=mysql_query($query);
    12. $r=mysql_fetch_array($result);
    13.  $path=$r['pic'];
    14. mysql_close($link);
    15. if(!file_exists($path)) {
    16.    echo "Файл не найден";
    17.  }
    18.  else {
    19.    $size=filesize($path);
    20.    header("Content-Type: image/jpg");
    21.    header("Content-Length: $size");
    22.    readfile($path);
    23.  }
    24.  ?>
    Так ничего не получается;
    Если удалить:
    Код (Text):
    1. <form action="show.php" method=GET>
    2. <input type="text" name="id">
    3. <input type="submit" value="Отправить">
    4. </form>
    тоже ничего не выходит

    Да и тем более мне нужно так:
    вводишь значение в форму и он выдает соответствующую картинку,так что без формы никак(([/list]
     
  25. unicross

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

    С нами с:
    14 янв 2009
    Сообщения:
    194
    Симпатии:
    0
    Форма должна быть в отдельном файле!

    надо убрать строку.