Если утверждение игнорирует elseif

У меня есть это утверждение 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") {