我有这个if语句。它是单击按钮以确定转发到的页面时运行的php脚本的一部分。 我有一个表,当管理员更改页面时更新,这一切都正常。 出于某种原因,这总是转发到scriptone。即使例如scriptthree被明确选择。 有什么建议吗?
$sql = "SELECT scriptName FROM selectedscript WHERE scriptSelected = '1'";
if($sql = "ScriptOne") {
header('Location: scriptone.php');
}
elseif ($sql = "ScriptTwo") {
header('Location: scripttwo.php');
}
elseif ($sql = "ScriptThree") {
header('Location: scriptthree.php');
}
else {
echo "Error";
}
谢谢
我尝试过双重和三重等号,但会导致显示错误信息:(
答案 0 :(得分:2)
=
是assignment。 ==
是equality。 ===
是strict equality。您想要后者中的一个,因为第一个通常会产生 true 值。
if ($sql == "ScriptOne") {
header('Location: scriptone.php');
}
答案 1 :(得分:1)
if($sql == "ScriptOne") {
^
不
if($sql = "ScriptOne") {
=
是作业,==
是比较
答案 2 :(得分:1)
您需要使用双重或三重等号
if($sql == "ScriptOne") {
答案 3 :(得分:1)
在if语句中使用它们之前,您需要执行sql查询并获取一些值。
这样的事情:
$sql = "SELECT scriptName FROM selectedscript WHERE scriptSelected = '1'";
$q=mysql_query($sql) or die(mysql_error());
$row=mysql_fetch_assoc($q);
switch ($row['scriptName']) {
case 'ScriptOne':
header('Location: scriptone.php');
break;
case 'ScriptTwo':
header('Location: scripttwo.php');
break;
case 'ScriptThree':
header('Location: scriptthree.php');
break;
default:
echo "Error";
}
另外,请考虑使用PDO而不是mysql_*
语句,因为它们是depreciated。