1

我有这个表格,现在,我只需要用不为空的变量更新数据库的部分。我的意思是,如果我有这个:

$postEmri       = filter_var($_POST["postEmri"], FILTER_SANITIZE_EMAIL);
$postKlienti        = filter_var($_POST["postKlienti"], FILTER_SANITIZE_STRING);
$postTelefoni   = filter_var($_POST["postTelefoni"], FILTER_SANITIZE_STRING);

还有这个:

$sql="UPDATE forma SET emri='$postEmri', klienti='$postKlienti', telefoni='$postTelefoni'";

如果$postEmri, $postKlientiundefinedempty,我不希望更新该记录。我怎样才能使用某些条件来做到这一点?

谢谢

所以我需要这样做吗?

$sql="UPDATE forma SET ";
// add every non-empty field to the query
if (!empty($postEmri)) $sql += " emri='$postEmri',";
if (!empty($postKlienti)) $sql += " klienti='$postKlienti',";
if (!empty($postTelefoni)) $sql += " telefoni='$postTelefoni,'";
// replace the last `,` for `;`
$sql = substr($sql, 0, -1) . ";";
$result=mysql_query($sql) or die(mysql_error()) ;
4

4 回答 4

3

如果您只想更新非空字段:

$sqlStart="UPDATE forma SET ";
$sql="";
// add every non-empty field to the query
if (!empty($postEmri)) $sql .= " emri='$postEmri',";
if (!empty($postKlienti)) $sql .= " klienti='$postKlienti',";
if (!empty($postTelefoni)) $sql .= " telefoni='$postTelefoni,'";
// if any of the fields is non-empty, run the query
if ($sql != "") {
    // replace the last `,` for `;`
    $sql = substr($sql, 0, -1) . ";";
    // run sql command
    $sqlCommand = $sqlStart.$sql;
} else {
    // no fields to update
}
于 2012-12-11T15:25:59.150 回答
1

你可以用空的

if (!empty($someVariable))
     //do something
于 2012-12-11T15:25:15.977 回答
0

更新

你说如果你有 100 个后变量,你就不想有“100 个 if 语句”。然后,您可以这样做,这将检查您的所有 $_POST 变量。请记住,这不会检查某些输入字段是否为空,这意味着输入值中可以有空格而不返回错误。

// Here you set how many results there should be from $_POST (total inputs)
$totalInputs=100;

if(count($_POST) != $totalInputs)
{
    echo "You forgot to fill all fields.";
}
else
{
    // Do your MySQL query here
}

希望对你有帮助!


旧代码

使用以下 PHP 代码段:

if(!empty($postEmri) && !empty($postKlienti))
{
     $sql="UPDATE forma SET emri='$postEmri', klienti='$postKlienti', telefoni='$postTelefoni'";
}

PHP 函数 empty() 检查变量是否为空。

更多信息在这里: http: //php.net/manual/en/function.empty.php

于 2012-12-11T15:25:27.410 回答
0
$sql='UPDATE forma SET ';
$appendSql = '';
if ( !empty($postEmri) ) $appendSql .= '`emri` = \" . $postEmri. \",';
if ( !empty($postKlienti) ) $appendSql .= '`klienti` = \" . $postKlienti. \",';
etc.

if ( !empty($appendSql)  ) {
    $sql =. $appendSql;
    $sql = substr($sql, 0, -1); 
    // Do query
} else {
    // Nothing to do, since nothing changed.
}
于 2012-12-11T15:26:27.747 回答