таблица обновляет пустые места, когда пользователь ничего не вводит в текстовое поле - PullRequest
0 голосов
/ 31 мая 2011

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

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

На моей 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

Ответы [ 3 ]

2 голосов
/ 31 мая 2011

Вы используете $ _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;
1 голос
/ 02 июня 2011

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

$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);
0 голосов
/ 31 мая 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...