我想知道如何检查特定用户的字段(列)是否为空。
我已成功连接到mySQL数据库,我已输入用户,并且我的字段为空。我有一个允许用户输入信息的帖子表格。根据其他字段是否为空,我希望它们相应填写。我想使用逻辑来确定字段是否为空。我使用以下内容:
if($_SERVER['REQUEST_METHOD'] == 'POST') {
if(trim($_POST['listing_link']) == '') {
}
else if(empty($listing_link1)) {
$listing_link1 = $_POST['listing_link'];
$listing_link1 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link1`='$listing_link1'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link1) && empty($listing_link2)) {
$listing_link2 = $_POST['listing_link'];
$listing_link2 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link2`='$listing_link2'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link2) && empty($listing_link3)) {
$listing_link3 = $_POST['listing_link'];
$listing_link3 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link3`='$listing_link3'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link3) && empty($listing_link4)) {
$listing_link4 = $_POST['listing_link'];
$listing_link4 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link4`='$listing_link4'
WHERE `email`='$emailstring'";
}
else if(!empty($listing_link4) && empty($listing_link5)) {
$listing_link5 = $_POST['listing_link'];
$listing_link5 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link5`='$listing_link5'
WHERE `email`='$emailstring'";
}
$result = mysql_query($query);
}
>
此代码检查用户在点击“listing_link”按钮时是否输入了任何内容。如果没有,那么没有任何反应。如果输入了某些内容,则它将检查以确定是否填写了任何其他字段(listing_link1,listing_link2 ... listing_link5)。 $ listing_link1 - 5变量应该承担信息。
除了:
之外,我无法让其他人运行else if(empty($listing_link1)) {
$listing_link1 = $_POST['listing_link'];
$listing_link1 = mysql_real_escape_string($_POST['listing_link']);
$query = "UPDATE `users`
SET `listing_link1`='$listing_link1'
WHERE `email`='$emailstring'";
通过点击表单按钮继续运行代码,只需用新输入的信息替换listing_link1变量。
也许这里写的逻辑有问题。如果可以的话请帮忙。
答案 0 :(得分:0)
在您检查它是否为空之前,您不会定义$listing_link1
:
else if(empty($listing_link1))
{
$listing_link1 = $_POST['listing_link'];
翻转他们:
$listing_link1 = $_POST['listing_link'];
if(empty($listing_link1))
{
答案 1 :(得分:0)
如果我找到了你,这将解决你的困境:
$empty = 0;
for($i=1; $i<=5; $i++){
$varname = "listinglink$i";
if(empty($$varname)){
$empty = $i;
break;
}
}
if($empty > 0){
$update_field = "listinglink{$empty}";
$update_data = $_POST['listing_link'];
mysql_query("UPDATE users SET `$update_field`='$update_data'
WHERE email='$emailstring'");
}
我在那里做的是旋转循环以检查哪一个是第一个空* listing_link *并且一找到它,将一些变量设置为其数字并退出循环。从那里它非常简单。
这样做:$$varname = 1;
是它取$ varname的值并尝试将其用作变量名,例如:
$test = "groovy.";
$varname = "test";
echo $$varname; // eqivalent to "echo $test"
有趣的技巧:)