这是我的声明:
if($row_x['xfield']==$_POST['x1'] AND $row_x['yfield']==$_POST['y'])
{
echo "ok";
}
else {
echo "invalid";
}
当两者不相等时,它必须显示'invalid' else,'ok'。但在这种情况下,无论它是否有效,它都会显示“无效”。
为什么有任何线索?
这是我的声明:
if($row_x['xfield']==$_POST['x1'] AND $row_x['yfield']==$_POST['y'])
{
echo "ok";
}
else {
echo "invalid";
}
当两者不相等时,它必须显示'invalid' else,'ok'。但在这种情况下,无论它是否有效,它都会显示“无效”。
为什么有任何线索?
你说'当两者不相等'......暗示你想在比较中使用'!='而不是'=='。有关 &&,请参阅此 T/F 图表:
--------------
| X | && | Y |
--------------
| F | F | F |
--------------
| F | F | T |
--------------
| T | F | F |
--------------
| T | T | T |
--------------
X 语句必须为真且 Y 语句必须为真。在你的例子中
$row_x['xfield']==$_POST['x1']
必须是 TRUE 以及
$row_x['yfield']==$_POST['y']
但是,如果我阅读了您的问题,您将希望将两个语句都设为 FALSE 以显示“无效”。因此,您需要在每个语句中将 '==' 替换为 '!='。
这是因为其中任何一个都不是真的或两者兼而有之
你正在使用 &&/AND 所以两者都必须匹配,因为你得到了 else 结果,这意味着它们中的任何一个都不相等或两者都不相等
您可以通过以下方法检查
if($row_x['xfield']==$_POST['x1']){
echo ' xfiekd is = to x1';
if($row_x['yfield']==$_POST['y']){
echo ' yfiekd is = to y and aslo 1 is true';
}else{ echo 'y is false' }
}
else{
echo ' xfiekd is = to x1' is false;
if($row_x['yfield']==$_POST['y']){
echo ' yfiekd is = to y and aslo 1 is true';
}else{ echo 'y is false' }
}
如果函数体在至少一个条件为真时进入,您需要使用||
而不是 AND
与 OR 之间的差异
AND的真值表
a b
true true = true
true false = false
false false = false
false true = false
OR的真值表
a b
true true = true
true false = true
false true = true
false false = true
true false = true
替换AND
为OR
,它会ok
在至少一个相等时显示
if($row_x['xfield']==$_POST['x1'] OR $row_x['yfield']==$_POST['y'])
{
echo "ok";
}
else {
echo "invalid";
}
选择
if($row_x['xfield']!=$_POST['x1'] AND $row_x['yfield']!=$_POST['y'])
{
echo "ok";
}
else {
echo "invalid";
}