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

Добавление новой записи в базу данных посредством php

28.05.2019, 21:40. Показов 2159. Ответов 26

Студворк — интернет-сервис помощи студентам
Нужно добавить новую запись в базу данных, как реализовать загрузку изображения...уже 2 недели ломаю голову, php знаю плохо,помогите,добрые умы!!!
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
if (isset($_GET['addform']))
{
  include $_SERVER['DOCUMENT_ROOT'].'/poteryashki.ru/includes/db.inc.php';
  if(!empty($_FILES['img_scr']['tmp_name']))
  {
    if(!move_uploaded_file($_FILES['img_scr']['tmp_name'],'file/'.$_FILES['img_scr']['name']))
    {
      exit("
        Не удалось загрузить изображение.");
 
    }
    $photo='file/'.$_FILES['img_scr']['name'];
  }
  else
  {
    exit("Необходимо загрузить изображение!");
  }
  try
  {
    $sql = 'INSERT INTO animal SET
        nickname = :nickname,
        gender = :gender,
        kind = :kind,
        breed = :breed,
        photo = :photo';
    $s = $pdo->prepare($sql);
    $s->bindValue(':nickname', $_POST['nickname']);
    $s->bindValue(':gender', $_POST['gender']);
    $s->bindValue(':kind', $_POST['kind']);
    $s->bindValue(':breed', $_POST['breed']);
    $s->bindValue(':photo', $_POST['photo']);
    $s->execute();
 
    $id_animal=$pdo->lastInsertId();
 
    $sql2 = 'INSERT INTO users SET
        name = :name,
        surname=:surname,
        email = :email,
        phone = :phone';
    $s2 = $pdo->prepare($sql2);
    $s2->bindValue(':name', $_POST['name']);
    $s2->bindValue(':surname', $_POST['surname']);
    $s2->bindValue(':email', $_POST['email']);
    $s2->bindValue(':phone', $_POST['phone']);
    $s2->execute();
 
    $id_user=$pdo->lastInsertId();
 
    $sql3 = 'INSERT INTO advert SET
        id_status = :id_status,
        id_animal=:id_animal,
        id_user = :id_user,
        location = :location,
        adate = :adate,
        atime = :atime,
        comment = :comment,
        date_advert = NOW()';
    $s3 = $pdo->prepare($sql3);
    $s3->bindValue(':location', $_POST['location']);
    $s3->bindValue(':adate', $_POST['adate']);
    $s3->bindValue(':atime', $_POST['atime']);
    $s3->bindValue(':comment', $_POST['comment']);
    $s3->bindValue(':id_animal', $id_animal);
    $s3->bindValue(':id_user', $id_user);
    $s3->bindValue(':id_status',$_POST['status']);
    $s3->execute();    
  }
  catch (PDOException $e)
  {
    $error = 'Ошибка при добавлении объявления: ' . $e->getMessage();
    include 'error.html.php';
    exit();
  }
}
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<form action="?<?php htmlout($action);?>" method="post" enctype="multipart/form-data">
        <table>
            <th colspan="5">
                <select name="status" id="status" required>
                    
                    <?php foreach ($statuss as $status):?>
                        <option value="<?php htmlout($status['id']);?>"
                            <?php
                            if($status['id']==$id_status)
                        {
                            echo 'selected';
                        }?>>
                        <?php htmlout($status['name_s']);?>
                            
                        </option>
                    <?php endforeach;?>
                </select>
            </th>
            <tr>
                <td rowspan="8"><input type="file" name="photo" value="<?php htmlout($photo);?>"></td>
                <td colspan="2">Информация о животном</td>
                <td colspan="2">Информация о владельце</td>
            </tr>
            <tr><td>Вид животного:</td>
                <td>
                    <select name="kind" id="kind" required>
                        <?php foreach ($kinds as $kind):?>
                            <option value="<?php htmlout($kind['id']);?>"<?php if($kind['id']==$kind)
                            {
                                echo 'selected';
                            }?>>
                            <?php htmlout($kind['name_k']);?>
                                    
                            </option>
                        <?php endforeach;?>
                    </select>
                    
                </td>
            </tr>
            <tr>
                <td>Кличка:</td>
                <td><input type="text" name="nickname" value="<?php htmlout($nickname);?>"></td>
                <td>Имя:</td>
                <td><input type="text" name="name" value="<?php htmlout($name);?>"></td>
            </tr>
            <tr>
                <td>Пол:</td>                
                <td>
                    <select name="gender" id="gender" required>
                        <?php foreach ($genders as $gender):?>
                            <option value="<?php htmlout($gender['id']);?>"
                                <?php 
                                if($gender['id']==$gender){
                                    echo 'selected';}?>>
                                <?php htmlout($gender['name_g']);?>
                                    
                            </option>
                        <?php endforeach;?>
                    </select>
                </td>
                <td>Фамилия:</td>
                <td><input type="text" name="surname" value="<?php htmlout($surname);?>"></td>
            </tr>
            <tr>
                <td>Порода:</td>
                <td><input type="text" name="breed" value="<?php htmlout($breed);?>"></td>
                <td>Эл. почта:</td>
                <td><input type="email" name="email" value="<?php htmlout($email);?>"></td>
            </tr>
            <tr>
                <td>Время:</td>
                <td><input type="time" name="atime" value="<?php htmlout($atime);?>"></td>
                <td>Телефон:</td>
                <td><input type="text" name="phone" value="<?php htmlout($phone);?>"></td>
            </tr>
            <tr>
                <td>Дата:</td>
                <td><input type="date" name="adate" value="<?php htmlout($adate);?>"></td>
            </tr>
            <tr>
                <td>Местоположение:</td>
                <td><input type="text" name="location" value="<?php htmlout($location);?>"></td>
            </tr>
            <tr>
                <td style="top: 0;">Дополнительная информация:</td>
                <td colspan="5">
                    <textarea cols="100" rows="7" value="<?php htmlout($comment);?>"></textarea>
                </td>
            </tr>
            <tr>
                <td>
                    <input type="hidden" name="id" value="<?php htmlout($id);?>">
                    <input type="submit" value="<?php htmlout($button);?>">
                </td>
            </tr>
        </table>        
    </form>
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
28.05.2019, 21:40
Ответы с готовыми решениями:

Добавление и редактирование новой записи в базу данных посредством php
Приветствую, мне необходимо реализовать добавление и редактирование записей из php, пробовал уже разные способы, искал в интернете, не...

Добавление новой записи в базу
Добрый вечер. Делаю добавление новой записи в таблицу базы. Проблема, как я понимаю, при вставке даты. Программа вылетает на последней...

Импорт из csv в базу данных посредством php скрипта
Привет, друзья. Есть php скрипт &lt;?php $file_name = 'сайт.ру/uploads/files/content.csv'; // абсолютный путь до файла //$file_name =...

26
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
29.05.2019, 14:05
Студворк — интернет-сервис помощи студентам
Корректировка вывода зависит от расположения папки file и каких-то других факторов. Возможно, что путь должен быть абсолютным. Например, если в базе у вас "file/my_image.jpg", то при выводе добавляем слеш в начале "/file/my_image.jpg"

Добавлено через 50 секунд
Цитата Сообщение от Azaliya98 Посмотреть сообщение
нужно задать размер
Сомневаюсь, что проблема в этом, но установка размеров не помешает.
0
0 / 0 / 0
Регистрация: 15.02.2018
Сообщений: 45
29.05.2019, 14:07  [ТС]
потому что сейчас на месте,где должно быть изображение ничего не отображается
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
29.05.2019, 14:08
Azaliya98, вы перестали меня слышать. Перечитайте мои ответы и вопросы, начиная с этих
0
0 / 0 / 0
Регистрация: 15.02.2018
Сообщений: 45
29.05.2019, 14:11  [ТС]
в базе путь так записан
Название: genm.png
Просмотров: 9

Размер: 5.9 Кб
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
29.05.2019, 14:26
Лучший ответ Сообщение было отмечено Azaliya98 как решение

Решение

Цитата Сообщение от Azaliya98 Посмотреть сообщение
в базе путь так записан
Я же говорил, что это не то, что нужно. Как можно вывести файл "C:\OpenServer\userdata\temp\php7CA4.tmp ", если файл у вас загружен и лежит в папке "file"? В базе у вас должен быть путь а-ля "file/имя_файла.его_расширение". Этот путь у вас присваивается переменной $photo в этом участке кода:
PHP
1
2
3
4
5
6
7
8
9
10
if(!empty($_FILES['img_scr']['tmp_name']))
  {
    if(!move_uploaded_file($_FILES['img_scr']['tmp_name'],'file/'.$_FILES['img_scr']['name']))
    {
      exit("
        Не удалось загрузить изображение.");
 
    }
    $photo='file/'.$_FILES['img_scr']['name']; // Вот это вам и нужно
}
И записывать путь в базу нужно из этой же переменной. Т.е. вместо $s->bindValue(':photo', $_POST['photo']); пишем $s->bindValue(':photo', $photo);

Добавлено через 4 минуты
P.S. Только вместо "img_scr" -> "photo"
1
0 / 0 / 0
Регистрация: 15.02.2018
Сообщений: 45
29.05.2019, 14:32  [ТС]
вышло!!!Вы супер!!!
а вы не знаете, из-за чего может быть, что не одна запись добавляется а сразу два???
0
 Аватар для Lazy_Den
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
29.05.2019, 14:35
Цитата Сообщение от Azaliya98 Посмотреть сообщение
не одна запись добавляется а сразу две
Причины могут быть разные: дублирование кода, лишние вызовы тех или иных функций, нажатие F5 и т.д. Определить методом "бабы Ванги" у меня вряд ли получится ))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2019, 14:35
Помогаю со студенческими работами здесь

Звуковой сигнал при добавлении новой записи в Базу Данных
Добрый день. Есть сайт, на котором зарегистрированные пользователи могут писать друг другу личные сообщения. Существует таблица users...

Php и добавление в базу данных через форму - PHP БД
Привет. Есть вопрос не могу понять почему данные не добавляются в таблицу. вроде все верно. &lt;h2...

Добавление записи в Базу данных
Добрый вечер, Есть работающее приложение для чтения и отправки сообщений. Необходимо записать входящие сообщения в бд. Пытаюсь пытаюсь...

Добавление записи в базу данных
Private Sub Command1_Click() Data1.Recordset.AddNew End Sub Private Sub Command2_Click() Text1.Text = Test.Text1.Text ...

Добавление записи в базу данных
такой вопрос, как додавить новую запись в базу данных с второй формы?? даные вводятся в textbox! если можно пример киньте) использую аксес...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru