Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77

Как добавить к своей форме добавления товаров возможность добавления изображений

20.06.2015, 15:27. Показов 2683. Ответов 19
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем добрый день, я уже некоторое время пытаюсь писать свою админку, теперь встала задача чтобы добавить к уже написанной странице с формой добавления товаров в базу - возможность добавлять изображения. я смотрел много всяких статей в интернете по этому поводу, но не смог найти чего то подходящего, всё либо слишком сложно описано либо не дописано.

вот часть кода моей страницы добавления нового товара:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        <div id="main">
            <div class="forma">
                <form action="tovar_add.php" method="post" name="form">
                <label>Введите категорию товара<br>
                <input name="type" type="text" id="name" size="10" maxlength="15">
                </label>
                <label>Введите название товара<br>
                <input name="name" type="text" id="name" size="30" maxlength="20">
                </label>
                <br>
                <label>Введите дату добавления<br>
                <input name="date" type="text" class="value" id="date" value="01.01.0001" size="20" maxlength="20">
                </label>
                </p>
                <label>Введите сюда описание товара<br>
                <textarea name="discription" id="discription" cols="100" rows="7"></textarea>
                </label>
                <br>
                <p><input name="submit" type="submit" value="Добавить">
                </p>
                </form>  
            </div><!--class - forma end --> 
        </div><!-- main end -->
а вот и код обработчика:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        <div id="main">
        
            <?php 
            
                if (isset($type) && isset($name) && isset($date) && isset($discription))
                {
                    $result = mysql_query("INSERT INTO tovar (type, name, date, discription) VALUES ('$type', '$name', '$date', '$discription')");
                    
                    if ($result = 'true')
                    {
                        echo "Товар добавлен в каталог!";
                    }  
                    else
                    {
                        echo "Товар не добавлен!";
                    }
                                 
                }
                else
                {
                    echo "Вы ввели не всю информацию!!";
                }
            ?>
        
        
        </div>

как бы всё работает просто прошу помощи в том как и что куда добавить чтоб получить возможность добавлять и изображения вместе с товарами.

заранее извиняюсь, если где то не так выразился- дайте знать и всё распишу
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.06.2015, 15:27
Ответы с готовыми решениями:

Как сделать возможность добавления товаров пользователями
как можно сделать в opencart функцию для пользователей, что бы они могли добавлять товары, то есть пользователь регается, потом он мог бы...

Возможность добавления файлов после добавления
&lt;form method=&quot;POST&quot; enctype=&quot;multipart/form-data&quot; action=&quot;&quot;&gt; &lt;input type=&quot;file&quot; multiple name=&quot;file&quot; size=&quot;20&quot;&gt;FILE&lt;hr&gt; &lt;input...

Переделать программу-опросник (добавить возможность добавления вопросов в рантайме)
сделал опросник. можете помочь, я теперь хочу сделать так, чтобы можно было вопросы самому добавлять вопросы прямо во время работы...

19
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 16:04
добавить в форму поле для выбора файла, в обработчике проверяете, если выбран, загружаете на сервер и записываете в базу путь к файлу
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 16:22  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
добавить в форму поле для выбора файла, в обработчике проверяете, если выбран, загружаете на сервер и записываете в базу путь к файлу
это я и хочу сделать но в интернете нашёл только виды загрузки самих изображений на сервер а не путей(
можете какой то сайт порекомендовать где это всё расписано ?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 16:31
Цитата Сообщение от PinkFloydRulit Посмотреть сообщение
нашёл только виды загрузки самих изображений на сервер а не путей(
так вам и нужно загрузить файл на сервер, а потом записать в базу путь к загруженному
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 16:32  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
так вам и нужно загрузить файл на сервер, а потом записать в базу путь к загруженному
как бы дело в том что я весь сайт ещё на локалхосте готовлю
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 16:35
Цитата Сообщение от PinkFloydRulit Посмотреть сообщение
как бы дело в том что я весь сайт ещё на локалхосте готовлю
локалхост, это и есть сервер(локальный, на компе)
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 16:38  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
локалхост, это и есть сервер(локальный, на компе)
это я понимаю, но не понимаю как тогда загрузить файл на сервер? понимаете мне надо это удобство создать для последующих владельцев которые ничего в этом не смыслят, чтобы они могли просто зайти в админку добавить новый товар с описаниями и фото выбрать со своего компа
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 17:41
Лучший ответ Сообщение было отмечено PinkFloydRulit как решение

Решение

PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<form method="post" enctype="multipart/form-data">
        <label>Выберите  изображение</label>
        <input type="file" name="file" >
        <input type="submit" name="sub" value="Загрузить">
 </form> 
 
<?php
//директория, куда сохраняем
$dir = 'media/images/';
// массив разрешеных расширенией
$extensions = array('jpeg', 'jpg', 'png', 'gif','mp3','mp4','xls');
// максимальный размер файла
$max_size = 500000;
if ($_SERVER['REQUEST_METHOD'] === 'POST'){
    // проверяем чтобы размер файла не был больше максимального
    if ($_FILES['file']['size'] > $max_size){
      echo 'файл больше допустимого размера';
    }
    else{
        //получаем рассширение файла
        $ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
        // проверяем есть ли расширение в массиве допустимых
        if (in_array($ext, $extensions)){
            //задаем имя файда
            $name =  uniqid() . '.' . $ext;
            $path =$dir.$name;
            //сохраняем
            if (move_uploaded_file($_FILES['file']['tmp_name'], $path)){
                echo 'файл загружен';
            }
            else{
                echo 'файл закрузить не удалось';
            }
        }
     }
?>
}
Добавлено через 58 минут
в вашем случае, как-то так
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        <div id="main">
            <div class="forma">
                <form enctype="multipart/form-data" action="tovar_add.php" method="post" name="form">
                <label>Введите категорию товара<br>
                <input name="type" type="text" id="name" size="10" maxlength="15">
                </label>
                <label>Введите название товара<br>
                <input name="name" type="text" id="name" size="30" maxlength="20">
                </label>
                <br>
                <label>Введите дату добавления<br>
                <input name="date" type="text" class="value" id="date" value="01.01.0001" size="20" maxlength="20">
                </label>
                </p>
                <label>Введите сюда описание товара<br>
                <textarea name="discription" id="discription" cols="100" rows="7"></textarea>
                </label>
                <br>
                <label>Загрузите файл <br>
                <input type="file" name="file">
                </label>
                <p><input name="submit" type="submit" value="Добавить">
                </p>
                </form>  
            </div><!--class - forma end --> 
        </div><!-- main end -->
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//директория загрузки файлов
$dir = 'media/images/';
// массив разрешеных расширенией
$extensions = array('jpeg', 'jpg', 'png', 'gif');
// максимальный размер файла
$max_size = 500000;
if (isset($type) && isset($name) && isset($date) && isset($discription)){
    if($_FILES['file']['size']> 0){
    // проверяем чтобы размер файла не был больше максимального
        if ($_FILES['file']['size'] > $max_size){
          echo 'файл больше допустимого размера';
        }
        else{
            //получаем рассширение файла
            $ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION));
            // проверяем есть ли расширение в массиве допустимых
            if (in_array($ext, $extensions)){
                //задаем имя файда
                $name =  uniqid() . '.' . $ext;
                $path =$dir.$name;
                //сохраняем
                if (move_uploaded_file($_FILES['file']['tmp_name'], $path)){
                    echo 'файл загружен';
                    $image = true;
                }
                else{
                    echo 'файл, закрузить не удалось';
                }
            }
            else{
                echo 'недопустимое расширение файла';
            }
         }
     }
// создайте в таблице поле для хранения имени изображения
    $img = isset($image)?$name:'';
    $result = mysql_query("INSERT INTO `tovar` (`type`, `name`, `date`,`discription`, `img`) VALUES ('".$type."', '".$name."', '".$date."', '".$discription."','".$img."')");
 
    if ($result){
        echo "Товар добавлен в каталог!";
    }  
    else{
        echo "Товар не добавлен!";
    }
    
}
else{
    echo "Вы ввели не всю информацию!!";
}
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 17:43  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
в вашем случае, как-то так
эта часть уже как я понимаю должна находиться в моём обработчике add_tovar.php?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 18:07
ну да, там, куда отправляется форма
HTML5
1
<form enctype="multipart/form-data" action="tovar_add.php" method="post" name="form">
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 18:07  [ТС]
можете ещё сказать в каком формате мне добавить в мою таблицу колонку img? у меня она такая :
Миниатюры
Как добавить к своей форме добавления товаров возможность добавления изображений  
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 18:17
varchar
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 18:31  [ТС]
что то не так ... при там в поле
PHP
1
2
3
                //задаем имя файда
                $name =  uniqid() . '.' . $ext;
                $path =$dir.$name;
пользуется переменной $name - которая у меня отвечает за имя товара,

вот что выдаёт - на рисунках


в итоге добавляет но изображение не показывает
Миниатюры
Как добавить к своей форме добавления товаров возможность добавления изображений   Как добавить к своей форме добавления товаров возможность добавления изображений   Как добавить к своей форме добавления товаров возможность добавления изображений  

0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 18:36
не досмотрел. получилось и название товара $name и имя изображения $name. измените $name для изображения
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 18:38  [ТС]
Цитата Сообщение от fanatikus Посмотреть сообщение
не досмотрел. получилось и название товара $name и имя изображения $name. измените $name для изображения
тоесть в таблицу ещё одно поле добавить для имени изображения скажем $title ?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 18:38
Лучший ответ Сообщение было отмечено PinkFloydRulit как решение

Решение

нет, изменить название переменной
PHP
1
2
3
$name_img =  uniqid() . '.' . $ext;
 $path =$dir.$name_img;
$img = isset($image)?$name_img:'';
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 18:56  [ТС]
сделал, но вот посмотрите на сайте такой у меня код где выводятся товары

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
        <?php
        
        $result = mysql_query("SELECT id, name, date, discription, img FROM tovar ", $db);
        $myrow = mysql_fetch_array($result);
        
        do
        {
            printf ("<table align='center' class='catalog'>
                    <tr>
                      <th class='catalog_title'><p>%s</p><p>Дата добавления:%s</p></th>
                    </tr>
                    <tr>
                      <td>%s</td>
                    </tr>
                    <tr>
                      <td>%s</td>
                    </tr>
                     </table><br><br>", $myrow["name"], $myrow["date"], $myrow["img"], $myrow["discription"] );
        }
        while ($myrow = mysql_fetch_array($result));
              
        ?>

и тут он просто как я понял получает из $img название и не перевоплощает его в картинку
Миниатюры
Как добавить к своей форме добавления товаров возможность добавления изображений  
0
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 19:02  [ТС]
и я только увидел что он в директории которую я отметил создаёт копии загруженных картинок с другими именами
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
20.06.2015, 19:32
Лучший ответ Сообщение было отмечено PinkFloydRulit как решение

Решение

Цитата Сообщение от PinkFloydRulit Посмотреть сообщение
$img название и не перевоплощает его в картинку
что значит не перевоплощает. по щучьему велению?
чтобы изображение отобразилось нужно его вывести.
PHP
1
echo "<img src='путь к изображению/".$myrow['img']."'>";
1
0 / 0 / 0
Регистрация: 31.05.2015
Сообщений: 77
20.06.2015, 19:41  [ТС]
сделал так

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        do
        {
            printf ("<table align='center' class='catalog'>
                    <tr>
                      <th class='catalog_title'><p>%s</p><p>Дата добавления:%s</p></th>
                    </tr>
                    <tr>
                      <td><img src='../img/%s'></td>
                    </tr>
                    <tr>
                      <td>%s</td>
                    </tr>
                     </table><br><br>", $myrow["name"], $myrow["date"], $myrow["img"], $myrow["discription"] );
        }
        while ($myrow = mysql_fetch_array($result));
и сработало)

спасибо огромное, и простите что столько нервов вам потрепал!)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.06.2015, 19:41
Помогаю со студенческими работами здесь

сайт php с базой на localhost (Нужно добавить возможность удаления - добавления в базу)
Всем доброго дня и с наступающим! Делаю курсовую &quot;сайт php с базой MySQL на localhost&quot; Не могу реализовать возможность удаления -...

Как реализовать возможность добавления названий файлов в таблицы (таблица в ферме)?
Здравствуйте, гуру. Возник вопрос. Как реализовать возможность добавления листинга файлов в соответствующее поле в таблице (и в...

Как сделать на сайте админ панель для добавления товаров на сайт?
Здравствуйте, хотел бы узнать как сделать на сайте админ панель для добавления товаров на сайт (тематика сайта интернет магазин по продаже...

Кнопка добавления товаров
Доброго времени суток. Частенько встречается кнопка в интернет-магазинах, при клике на которую показывается +10 (к примеру) товаров...

Возможность добавления картинок в базу
Здравствуйте! Подскажите, пожалуйста, как осуществить добавление картинок в базу. Существует база недвижимости, необходимо добавлять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru