У меня есть это утверждение if. Это часть скрипта php, который запускается при нажатии кнопки, чтобы определить страницу, на которую она переслана. У меня есть таблица, которая обновляется, когда администратор меняет страницу, и все это работает нормально. По какой-то причине, однако, это всегда пересылается скриптону. Несмотря на то, что, например, определен сценарий. Любые предложения, пожалуйста?
$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"; }
спасибо
Я попробовал двойные и тройные равные знаки, однако это приводит к отображению сообщения об ошибке 🙁
Вам нужно будет выполнить sql-запрос и получить некоторые значения перед их использованием в ваших операторах if.
Что-то вроде этого:
$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_*
поскольку они амортизируются .
=
задание . ==
равенство . ===
строгое равенство . Вы хотите, чтобы один из последних, поскольку первый обычно приводит к истинному значению.
if ($sql == "ScriptOne") { header('Location: scriptone.php'); }
if($sql == "ScriptOne") { ^
не
if($sql = "ScriptOne") {
=
задание, ==
– сравнение
Вам нужно использовать двойные или тройные знаки равенства
if($sql == "ScriptOne") {