Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183

При редактировании формы выбираю значение, а в MySQL уходит NULL

23.04.2015, 14:37. Показов 880. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Есть таблица контрагентов:

Если нажимаю на редактировать, то перехожу в форму, которая корректно вносит изменения, кроме статуса:

Если выбираю любое значение, то в массив попадает NULL и в итоге лицезрею пустой статус:

Вот код основной страницы customers.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
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
<html>
<head>
    <title>Контрагенты</title>
</head>
<body>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<form action="customers.php" method="post">
<table>
    <tr>
        <td>
            <select name="status">
                <option value="впервые">впервые</option>
                <option value="постоянник">постоянник</option>
                <option value="предоплатник">предоплатник</option>
                <option value="не работаем">не работаем</option>
            </select>
        </td>
        <td rowspan="4" colspan="2">
        <p><textarea rows="5" cols="30" name="comment" placeholder="Коментарий"></textarea></p>
        </td>
    </tr>
    <tr>
        <td>
            <input type= "text" name="name" placeholder="ФИО">
        </td>
 
    </tr>
    <tr>
        <td>
            <input type= "text" name="tel" placeholder="Телефон">
        </td>
    </tr>
    <tr>
        <td>
            <input type= "text" name="email" placeholder="e-mail">
        </td>
    </tr>
    <tr>
        <td>
            <input type= "text" name="adress" placeholder="Адрес доставки">
        </td>
        <td>
            <p align="left"><input type="reset" value="Очистить"></p>
        </td>
        <td>
        <p align="right"><input type="submit" value="Записать"></p>
        </td>
    </tr>
</table>
</form>
<table border="1" cellpadding="5" cellspacing="0" ALIGN="center">
<tr>
    <th width=25px;>ID</th>
    <th width=25px;>Статус</th>
    <th width=25px;>Контрагент</th>
    <th width=100px;>Телефон</th>
    <th width=100px;>e-mail</th>
    <th width=100px;>Адрес</th>
    <th width=100px;>Комментарий</th>
    <th width=130px;>Выполнение действия</th>
</tr>
<?php
include 'link.php';
 
header('Content-Type: text/html; charset=utf-8');
 
if (isset($_POST['status'])){
    $status = $_POST['status'];}
if (isset($_POST['name'])){
    $name = $_POST['name'];}
if (isset($_POST['tel'])){
    $tel = $_POST['tel'];}
if (isset($_POST['email'])){
    $email = $_POST['email'];}
if (isset($_POST['adress'])){
    $adress = $_POST['adress'];}
if (isset($_POST['comment'])){
    $comment = $_POST['comment'];}
    
if (isset($_POST['status1'])){
    $status1 = $_POST['status1'];}
    else
    {
    $status1 = "";
    }
if (isset($_POST['name1'])){
    $name1 = $_POST['name1'];}
        else
    {
    $name1 = "";
    }
if (isset($_POST['tel1'])){
    $tel1 = $_POST['tel1'];}
        else
    {
    $tel1 = "";
    }
if (isset($_POST['email1'])){
    $email1 = $_POST['email1'];}
            else
    {
    $email1 = "";
    }
if (isset($_POST['adress1'])){
    $adress1 = $_POST['adress1'];}
            else
    {
    $adress1 = "";
    }
if (isset($_POST['comment1'])){
    $comment1 = $_POST['comment1'];}
    else
    {
    $comment1 = "";
    }
if (isset($_POST['$id_cust1'])){
    $id_cust1 = $_POST['$id_cust1'];}   
 
if($_SERVER['REQUEST_METHOD']=='POST'){
    if ($_POST['edd'] != "ed1"){
        $sql = "INSERT INTO customers (status_cust, name_cust, tel_cust, email_cust, adress_cust, comment_cust) VALUE ('$status' ,'$name','$tel', '$email', '$adress', '$comment')";
        mysqli_query($link, $sql) or die (mysqli_error($link));
        header("Location: customers.php");
        exit;
    }
    else
    {
        $sql = "UPDATE customers SET status_cust = '$status1', name_cust = '$name1', tel_cust = '$tel1', email_cust = '$email1', adress_cust = '$adress1', comment_cust = '$comment1' WHERE id_cust='$id_cust1' ";
        mysqli_query($link, $sql) or die (mysqli_error($link));
        header("Location: customers.php");
        exit;
    }
}
 
//Удаляем записи из базы данных
if(isset($_GET['del'])){
    $del = $_GET['del'];
        if($del){
        $sql = "DELETE FROM customers WHERE id_cust=$del";
        mysqli_query($link, $sql) or die(mysqli_error());
        header("Location: customers.php");
        exit;
    }
}
 
$select = 'SELECT  id_cust, status_cust, name_cust, tel_cust, email_cust, adress_cust, comment_cust FROM customers';
$resultat = mysqli_query($link, $select) or die($link);
foreach($resultat as $row){
?>
    <tr>
        <td align="center"><?= $row['id_cust']?></td>
        <td align="center"><?= $row['status_cust']?></td>
        <td align="center"><?= $row['name_cust']?></td>
        <td align="center"><?= $row['tel_cust']?></td>
        <td align="center"><?= $row['email_cust']?></td>
        <td align="center"><?= $row['adress_cust']?></td>
        <td align="center"><?= $row['comment_cust']?></td>
        <td align="center">
            <a href="customers.php?del=<?=$row['id_cust']?>">Удалить</a>
            <a href="edit.php?edit=<?=$row['id_cust']?>">Редактировать</a>
            <a href="edit.php?edit=<?=$row['id_cust']?>">Создать заказ</a>
            <a href="edit.php?edit=<?=$row['id_cust']?>">История заказов</a>
        </td>   
    </tr>
<?
}
//var_dump($del);
?>
</table>
</body>
</html>
Вот код страницы edit.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
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
<html>
<head>
    <title>Редактирование данных</title>
</head>
<body>
<?
include 'link.php';
header('Content-Type: text/html; charset=utf-8');
$edit = $_GET['edit'];
$select = "SELECT  status_cust, name_cust, tel_cust, email_cust, adress_cust, comment_cust FROM customers WHERE id_cust='$edit' ";
$resultat1 = mysqli_query($link, $select) or die($link);
$row15 = $resultat1->fetch_assoc();
 
?>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
<form action="customers.php" method="post">
<table>
    <tr>
        <td>
<!--            <p> <? echo $row15['status_cust'] ?> </p> -->
            
            <select name="status_cust">
                <option value="впервые">впервые</option>
                <option value="постоянник">постоянник</option>
                <option value="предоплатник">предоплатник</option>
                <option value="не работаем">не работаем</option>
            </select>
            
        </td>
        <td rowspan="4" colspan="2">
        <p><textarea rows="5" cols="30" name="comment1"><? echo $row15['comment_cust'] ?></textarea></p>
        </td>
    </tr>
    <tr>
        <td>
            <input type= "text" name="name1" value="<? echo $row15['name_cust'] ?>">
        </td>
 
    </tr>
    <tr>
        <td>
            <input type= "text" name="tel1" value="<? echo $row15['tel_cust'] ?>">
        </td>
    </tr>
    <tr>
        <td>
            <input type= "text" name="email1" value="<? echo $row15['email_cust'] ?>">
        </td>
    </tr>
    <tr>
        <td>
            <input type= "text" name="adress1" value="<? echo $row15['adress_cust'] ?>">
        </td>
        <input type="hidden" name="edd" value="ed1">
        <input type="hidden" name="$id_cust1" value="<?echo $edit?>">
        <td>
        <p align="right"><input type="submit" value="Изменить"></p>
        </td>
    </tr>
</table>
</form>
<?
/* if(isset($_GET['edit'])){
    $edit = $_GET['edit'];
        if($edit){
        $sql = "UPDATE FROM customers WHERE id_cust=$edit";
        mysqli_query($link, $sql) or die(mysqli_error());
        header("Location: edit.php");
        exit;
    }
}
*/?>
</html>
В общем как сделать, чтобы при изменении статуса данные коректно заносились в MySQL?
Иными словами, как правильно совместить select с занесением значения в массив?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2015, 14:37
Ответы с готовыми решениями:

При редактировании новости ошибка MySQL
Вот такая проблема. Сайт на DLE. Новости добавляются нормально, а вот когда редактируешь, жмёшь сохранить, то выскакивает ошибка: ...

Ошибка при редактировании данных в БД MySQL средствами PHP
Вот код программы index.html &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot;...

Проблема событий при редактировании компонентов формы из кода
Написал статью про решение часто встречающейся проблемы с интерфейсом. Суть проблемы в следующем: Если редактировать содержимое...

8
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
23.04.2015, 15:39  [ТС]
Ещё проще:
Как при выборке значения:
PHP
1
2
3
4
5
6
<select name="status_cust">
                <option value="впервые">впервые</option>
                <option value="постоянник">постоянник</option>
                <option value="предоплатник">предоплатник</option>
                <option value="не работаем">не работаем</option>
            </select>
В массив $row15['status_cust'] заносилось соответствующее значение?
0
 Аватар для ISerg1986
16 / 16 / 13
Регистрация: 12.01.2014
Сообщений: 177
23.04.2015, 15:51
Цитата Сообщение от sasha300 Посмотреть сообщение
<option value="предоплатник">
А может, по английски? value="predoplatnik"

Цитата Сообщение от sasha300 Посмотреть сообщение
header('Content-Type: text/html; charset=utf-8');
Зачем это? Просто сохраняем файл в utf-8 без bom. Не надо нам хедеров...

Цитата Сообщение от sasha300 Посмотреть сообщение
$status1 = "";
$status1 = ''; Ох уж эти основы с кавычками (

Цитата Сообщение от sasha300 Посмотреть сообщение
В массив $row15['status_cust'] заносилось соответствующее значение?
$row15['status_cust']= $_POST['predoplatnik'];

Вообщем с кодировками у вас не ладно. Интересно а соединение с бд и база в какой кодировке?
1
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
23.04.2015, 15:53  [ТС]
Цитата Сообщение от ISerg1986 Посмотреть сообщение
Вообщем с кодировками у вас не ладно. Интересно а соединение с бд и база в какой кодировке
Все в utf-8 без bom. Данные заносятся и редактируются корректно, без кракозябр.
Сейчас переделаю статусы как посоветовали. В ближайшее время выдам результаты.
0
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
23.04.2015, 16:41  [ТС]
Цитата Сообщение от ISerg1986 Посмотреть сообщение
А может, по английски? value="predoplatnik"
по английски написал, но значения-то теперь на английском вижу:

Это же не айс!
0
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
23.04.2015, 17:36  [ТС]
Цитата Сообщение от ISerg1986 Посмотреть сообщение
Зачем это? Просто сохраняем файл в utf-8 без bom. Не надо нам хедеров...
заработало и без хеадера. Спасибо!

Цитата Сообщение от ISerg1986 Посмотреть сообщение
$status1 = ''; Ох уж эти основы с кавычками (
обявление переменной, чтобы не всплывала ошибка notice
Чем так-то плохо?

p.s.: по работе отвлекли, сейчас попробую присвоить массиву значение, которое написали

Добавлено через 4 минуты
В общем сделал так:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
<form action="customers.php" method="post">
<table>
    <tr>
        <td>            
            <select name="status_cust">
              <option value="впервые">впервые</option>
              <option value="постоянник">постоянник</option>
              <option value="предоплатник">предоплатник</option>
              <option value="не работаем">не работаем</option>
            </select>
            <?  var_dump($_POST['status_cust']);?>
        </td>
т.е. проверил массив, в итоге выдало, что он нулевой:
Notice: Undefined index: status_cust in /var/www/edit.php on line 28

NULL
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
23.04.2015, 19:12
sasha300, у Вас поле называется "status_cust", а из POST вы пытаетесь получить "status" (customers.php на 67 строке).
1
 Аватар для sasha300
6 / 3 / 0
Регистрация: 12.07.2014
Сообщений: 183
24.04.2015, 10:51  [ТС]
Что-то я запутался. В выходные посижу над кодом, а уже сам не понимаю что куда идет..
Кстати, а если опять встряну на какой-то задаче, то может быть проще мне закинуть рублей 300 на счет, а мне скинут код. Мне проще вникать в уже готовый код, а не изобретать велосипед..
p.s.: к примеру как с редактированием, пока появилось желание, пока вник как писать прошла неделя, в итоге родил 63 строчки кода html с php, но опять стопорнулся..
В общем как такая идея??
Или лучше самостоятельно сидеть и разбираться, а если уже все, когда точно понимаю, что зашел в тупик или решаю задачу свыше недели, то задаю вопрос на форуме?
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
24.04.2015, 11:10
Цитата Сообщение от sasha300 Посмотреть сообщение
Или лучше самостоятельно сидеть и разбираться, а если уже все, когда точно понимаю, что зашел в тупик или решаю задачу свыше недели, то задаю вопрос на форуме?
Лучше так. А-то не научитесь, если за деньги будут Вам писать код.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.04.2015, 11:10
Помогаю со студенческими работами здесь

Как в mysql сделать выборку параметра со значение NULL?
У меня в таблице есть поле CODE_PAR, у которого в нескольких записях стоит значение NULL UPDATE `t_service` SET CODE_PAR = '0' WHERE...

Проверка на повторное значение при редактировании таблицы
Приветствую форумчан,я снова за советом и есть небольшая тестирующая программа связанная с бд access,есть таблица users и поле Login в бд...

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

Значение Null при удалении родительской записи
Добрый день. Есть две таблицы Customers и Orders. В Orders есть ссылка (FK) на таблицу с клиентами customer_id. Как при удалении клиента в...

Значение переменных выводящее не null при применении GetProperty(),
Доброго времени суток! Глупый вопрос, но каким должно быть значение object t; string p; чтобы...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
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 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru