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

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

28.05.2019, 21:40. Показов 2308. Ответов 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
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru