Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 3
1

Проблема с сохранением и редактированием данных

21.06.2019, 12:24. Показов 668. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Не получается сохранить введенные данные о новом пользователе, ни каких ошибок вроде как нет
new_user.php
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
<?php require_once 'config.php';?>
    
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title> Добавление нового пользователя </title> 
            <link rel="stylesheet" href="style.css">
        </head>
        <body>
            <H2>Регистрация на сайте:</H2>
            <form action="save_new.php" metod="get">
                Логин: <input name="login" size="20" type="text">
                Пароль: <input name="password" size="20" type="password">
                ФИО: <input name="fio" size="30" type="text">
                Отдел: <select name="group_workers"><option value="0">Выберите отдел</option>
                <?
                $res = mysqli_query($db, 'SELECT id, name_group FROM group_workers');
                while($row = mysqli_fetch_assoc($res)){
                    ?>
                    <option value="<?=$row['id']?>"><?=$row['name_group']?></option>
                    <?
                }
                ?>
                </select>
                <p><input name="add" type="submit" value="Добавить">
                <input name="b2" type="reset" value="Очистить"></p>
            </form>
            <p>
            <a href="users.php"> Вернуться к списку пользователей </a>
        </body>
    </html>
save_new.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
    
    // Подключение к базе данных:
    require_once 'config.php';
    
    // Строка запроса на добавление записи в таблицу:
    $sql_add = "INSERT INTO users SET user_login='" . $_GET['login'] ."', 
    user_password='" . $_GET['password'] . "', 
    fio='" . $_GET['fio'] . "', 
    parent_group_workers='" . $_GET['group_workers'] . "'";
    
    mysqli_query($db, $sql_add); // Выполнение запроса
    
    if (mysqli_affected_rows($db)>0) // если нет ошибок при выполнении запроса
    { 
        print "<p>Спасибо, вы зарегистрированы в базе данных.";
        print "<p><a href="users.php"> Вернуться к списку пользователей </a>"; 
    }else{ 
        print "Ошибка сохранения. <a href="users.php"> Попробуйте еще раз </a>"; 
        }
    ?>
После добавления происходит print "Ошибка сохранения. <a href="users.php"> Попробуйте еще раз </a>";
При редактировании данных выдает ошибку Recoverable fatal error: Object of class mysqli could not be converted to string in D:\OSPanel\domains\testing.ru\edit_user.php on line 24

edit_user.php
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
38
<?php require_once 'config.php';?>
    
    <!DOCTYPE html>
    <html>
        <head>
            <title> Редактирование данных о пользователе </title>
        </head>
        <body>
            <?php
            $rows=mysqli_query($db, "SELECT user_login, user_password, fio, parent_group_workers FROM users WHERE user_id='".$_GET['user_id']."'");
            while ($st = mysqli_fetch_array($rows)) {
                $id=$_GET['user_id'];
                $login = $st['user_login'];
                $password = $st['user_password'];
                $fio = $st['fio'];
                $parent_group_workers = $st['parent_group_workers'];
            }
                print "<form action='save_edit.php' metod='get'>";
                print "Логин: <input name='login' size='20' type='text' value='".$login."'>";
                print "<br>Пароль: <input name='password' size='20' type='text' value='".$password."'>";
                print "<br>ФИО: <input name='fio' size='30' type='text' value='".$fio."'>";
                print "<br>Отдел: <select name='group_workers'><option value='0'>Выберите отдел</option>
                <?
                $res = mysqli_query($db, 'SELECT id, name_group FROM group_workers');
                while($row = mysqli_fetch_assoc($res)){
                    ?>
                    <option value='".$row['id']."'>".$row['name_group']."</option>
                    <?
                }
                ?>
                </select>";
                print "<input type='hidden' name='id' value='".$id."'> <br>";
                print "<input type='submit' name='' value='Сохранить'>";
                print "</form>";
                print "<p><a href="index.php"> Вернуться к списку пользователей </a>";
            ?>
        </body>
    </html>
save_edit.php
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php require_once 'config.php';?>
    
    <!DOCTYPE html>
    <html> 
        <body>
            <?php
            $zapros="UPDATE user SET user_login='" . $_GET['login'] ."', 
            user_password='" . $_GET['password'] . "',  
            fio='" . $_GET['fio'] . "', 
            parent_group_workers='" . $_GET['group_workers'] . "',
            WHERE user_id=" .$_GET['user_id'];
            mysqli_query($db, $zapros);
            if (mysqli_affected_rows($db)>0) {
            echo 'Все сохранено. <a href="users.php"> Вернуться к списку пользователей </a>'; 
            }else{ 
            echo 'Ошибка сохранения. <a href="edit_user.php"> Попробуйте еще раз </a> '; 
            }
            ?>
        </body> 
    </html>
Помогите решить проблему
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.06.2019, 12:24
Ответы с готовыми решениями:

Проблема с редактированием данных в БД ASP-скриптом
Есть 3 поля в форме. Значения этих полей берутся из базы. Почему то браузер? или не знаю кто...

Проблема с сохранением данных сессии
СЕССИИ НЕ ПЕРЕДАЮТЬСЯ! Первый файл &lt;? session_start(); echo 'Добро пожаловать на страницу 1';...

Проблема с сохранением данных в таблице
Не сохраняются данные в таблице, использую QTableView и QSqlTableModel #include &quot;mainwindow.h&quot; ...

проблема с редактированием
проблема в том что в таблице хранятся пути к документам, а при редактировании почему то путь...

10
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
21.06.2019, 12:41 2
feodorov, sql запрос на добавление должен быть в общем виде таким:
SQL
1
INSERT INTO `название базы`.`название таблицы` SET (`название колонки 1`, `название колонки 2` , .... `название колонки N`) VALUES ('значение в колонку 1', 'значение в колонку 2' , .... 'значение в колонку N');
Обязательно нужно все колонки перечислить и кол-во колонок должно точно соответствовать количеству значений
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 3
22.06.2019, 16:18  [ТС] 3
Это не помогло, есть еще варианты
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.06.2019, 16:28 4
Цитата Сообщение от feodorov Посмотреть сообщение
есть еще варианты
http://phpfaq.ru/debug
0
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
23.06.2019, 07:44 5
feodorov, давайте исправленный код и структуру таблицы.
0
0 / 0 / 0
Регистрация: 22.05.2019
Сообщений: 3
23.06.2019, 08:09  [ТС] 6
SQL
1
2
3
4
5
6
7
8
CREATE TABLE `users` (
  `user_id` INT(10) UNSIGNED NOT NULL,
  `user_login` VARCHAR(255) NOT NULL,
  `user_password` VARCHAR(32) NOT NULL,
  `fio` VARCHAR(255) NOT NULL,
  `parent_group_workers` INT(10) UNSIGNED NOT NULL,
  `role` enum('0','1') NOT NULL DEFAULT '0'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
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
    <?php
    
    // Подключение к базе данных:
    require_once 'config.php';
    
    // Строка запроса на добавление записи в таблицу:
    $sql_add = "INSERT INTO testing.users SET (user_login, 
    user_password, 
    fio, 
    parent_group_workers) VALUES (" . $_GET['login'] .", 
    " . $_GET['password'] . ", 
    " . $_GET['fio'] . ", 
    " . $_GET['group_workers'] . ")";
    
    mysqli_query($db, $sql_add) or die(mysqli_error($db)); // Выполнение запроса
    
    if (mysqli_affected_rows($db)>0) // если нет ошибок при выполнении запроса
    { 
        print "<p>Спасибо, вы зарегистрированы в базе данных.";
        print "<p><a href=\"users.php\"> Вернуться к списку пользователей </a>"; 
    }else{ 
        print "Ошибка сохранения. <a href=\"users.php\"> Попробуйте еще раз </a>"; 
        }
    ?>
0
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
23.06.2019, 10:38 7
feodorov, ну я же написал, что sql должен содержать названия всех колонок таблицы и соответственно для всех колонок значения. А Вы как в ни в чём не бывало указываете только четыре. Перечислите все:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$sql_add = "INSERT INTO `testing`.`users` 
    SET 
    (
        `user_id`,
        `user_login`,
        `user_password`,
        `fio`,
        `parent_group_workers`,
        `role`
    )
    VALUES 
    (
        0,
        '".$_GET['login']."',
        '".$_GET['password']."',
        '".$_GET['fio']."',
        0,
        0'
    )";
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.06.2019, 13:33 8
Цитата Сообщение от atanov Посмотреть сообщение
что sql должен содержать названия всех колонок таблицы и соответственно для всех колонок значения
role можно опустить, а вот user_id нужен, вероятно feodorov хотел его сделать PRIMARY KEY и AUTOINCREMENT, но не сделал
0
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
23.06.2019, 14:00 9
Цитата Сообщение от Jewbacabra Посмотреть сообщение
role можно опустить
возможно да, но как тогда скрипт определить баранку или единичку туда ставить?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
23.06.2019, 14:22 10
Цитата Сообщение от atanov Посмотреть сообщение
как тогда скрипт определить баранку или единичку туда ставить?
Цитата Сообщение от feodorov Посмотреть сообщение
`role` enum('0','1') NOT NULL DEFAULT '0'
Указано что 0
0
634 / 476 / 170
Регистрация: 26.05.2016
Сообщений: 2,638
23.06.2019, 15:55 11
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Указано что 0
, ах да...
0
23.06.2019, 15:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.06.2019, 15:55
Помогаю со студенческими работами здесь

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

Проблема с редактированием записи
Проблема с редактированием записи, открывается форма редактирования записи при изменении записи и...

Проблема с редактированием контента
Всем привет! Не могу никак изменить контент/текст заголовка и преимуществ, подскажите где можно...

Веб редактор(iframe): проблема с редактированием текста
у меня возникли проблемы при редактировании текста в веб редакторе для браузера netscape область...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru