Intereting Posts
PHP 5.5.0 с Microsoft SQL Server 2008 R2 – Нет sqlsrv_connect ()? Получить http-statuscode без тела с помощью cURL? Сайт получает запросы на странные строки запросов Автозаполнение для ZF2 просмотр помощников в PhpStorm Как исправить фиксацию сеанса в PHP PHP: удалить первый и последний элемент массива laravel поиск нескольких слов, разделенных пробелом Получение базы данных MySql XAMPP с другого компьютера Получить содержимое файла домена в другом домене на том же сервере Параметрированный запрос PDO и предложение LIMIT` – не работают внутренние таблицы подключения mysql php cors oauth2 проблемы с авторизацией на предъявителя SQLSTATE : Нарушение ограничения целостности: 1452 Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не удалось – Laravel Удаление текста после строки API Google Analytics – получить токен доступа без аутентификации с помощью экрана согласия

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

Я делаю проект, в котором можно обновить имя, должность, отдел и тег сотрудника.

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

моя php-страница имеет index.php, которая является основным меню, если вы нажмете имя сотрудника в списке, появится всплывающее окно. это всплывающее окно для обновления.

мой php-код (теперь он обновляется), но обнаружены ошибки:

<?php $con=mysql_connect('localhost','root','pss') or die(mysql_error()); mysql_select_db('intra',$con); if(isset($_POST['submitted'])) { $sql = "SELECT * FROM gpl_employees_list where emp_id='".$_POST['eid']."'"; $result = mysql_query($sql) or die (mysql_error()); if(!$result || mysql_num_rows($result) <= 0) { return false; } $qry = "UPDATE gpl_employees_list SET emp_nme = '".$_POST['ename']."', emp_pos = '".$_POST['pos']."', emp_dep = '".$_POST['dep']."', emp_tag = '".$_POST['tag']."' WHERE emp_id = '".$_POST['eid']."' "; mysql_query($qry) or die (mysql_error()); ?><script>window.close();</script><?php } ?> 

* ПРИМЕЧАНИЕ. Это обновление теперь обновляется, но если пользователь оставляет одно из текстовых полей пустым, он также обновляет таблицу пустым пространством, и теперь это моя проблема. как я могу избежать этого? я имею в виду, если пользователь оставляет одно текстовое поле пустым, данные с пустыми значениями все равно должны содержать старое значение, но как это сделать с этим кодом? спасибо тем, кто поможет

 MisaChan

Вы используете $ _POST для 'name / pos / dep / tag' и $ _GET для 'emp', поэтому вы, вероятно, не получаете значения. Измените GET на POST – это должно сделать это. Поскольку вы обновляете, я бы рекомендовал использовать POST через GET. GET более подходит для поиска.

Кроме того, вы можете поместить все ваши запросы на обновление в один запрос на обновление. Вот так.

 $name = $_POST['name']; $pos = $_POST['pos']; $dep = $_POST['dep']; $tag = $_POST['tag']; $emp = $_POST['emp']; $qry_start = "UPDATE gpl_employees_list SET "; $where = " WHERE emp_id = $emp"; $fields = ""; $updates = ""; if($name){ $updates .= " `emp_name` = $name,"; } if($pos){ $updates .= " `emp_pos` = $pos,"; } if($dep){ $updates .= " `emp_dep` = $dep,"; } if($tag){ $updates .= " `emp_tag` = $tag,"; } $updates = substr($updates, 0, -1); //To get rid of the trailing comma. $qry = $qry_start . $updates . $where; 

это то, что я использовал, чтобы держать его в рабочем состоянии 🙂 Я надеюсь, что это может быть источником для других, а также 🙂

 $col['emp_nme'] = (trim($_POST['ename']))?trim($_POST['ename']):false; $col['emp_pos'] = (trim($_POST['pos']))?trim($_POST['pos']):false; $col['emp_dep'] = (trim($_POST['dep']))?trim($_POST['dep']):false; $col['emp_tag'] = (trim($_POST['tag']))?trim($_POST['tag']):false; // add a val in $col[] with key=column name for each corresponding $_POST val $queryString ="UPDATE `gpl_employees_list` SET "; foreach($col as $key => $val){ if($val){ $queryString .="`".$key."`='".$val."',"; } } $queryString = substr($queryString ,0 ,strlen($queryString) - 1 )." WHERE emp_id = '".$_POST['eid']."'"; mysql_query($queryString); 

После внесения изменений в базу данных SQL не забудьте зафиксировать эти изменения, иначе они будут проигнорированы.