php
2013-04-10 156 views 1 likes 
1

我有這個if語句。它是一個php腳本的一部分,當點擊一個按鈕來確定它被轉發到的頁面時,它將運行。 我有一個表更新時,管理員更改頁面,這一切工作正常。 由於某些原因,但這總是轉發到scriptone。儘管例如scriptthree被明確選擇。 有什麼建議嗎?如果語句忽略elseif

$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"; 
} 

謝謝

我已經試過但雙重和三重等號,導致該錯誤消息顯示:(

回答

1

您需要執行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"; 
} 

而且,考慮使用的mysql_*語句PDO,而不是因爲他們是depreciated

+0

非常感謝你! – user2268032 2013-04-10 21:53:33

1
if($sql == "ScriptOne") { 
     ^

if($sql = "ScriptOne") { 

=是分配,==是比較

1

您需要使用雙重或三重等號

if($sql == "ScriptOne") { 
2

=assignment==equality===strict equality。您希望後者之一作爲第一個典型結果,其值爲true

if ($sql == "ScriptOne") { 
    header('Location: scriptone.php'); 
} 
+0

downvoter關心分享? – 2013-04-10 21:58:18

相關問題