我有这个表单,现在,我需要仅使用非空变量更新数据库的各个部分。 我的意思是,如果我有这个:
$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, $postKlienti
是undefined
或empty
,我不希望更新该记录。
我怎么能用某些条件来做呢?
谢谢
所以我需要这样做?
$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()) ;
答案 0 :(得分: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
}
答案 1 :(得分:1)
您可以使用empty
if (!empty($someVariable))
//do something
答案 2 :(得分: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()检查变量是否为空。
答案 3 :(得分: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.
}