2013-05-13 55 views
0

我有一個if語句,當我的mysql表=服務器uri,它改變了css類,但我一直無法得到它的工作。這裏是我的代碼:如果聲明不工作時,表= uri

$adminresults = mysql_query('SELECT * FROM menu_admin WHERE position="l"'); 
    $adminresults_array = array(); 
    while ($row = mysql_fetch_assoc($adminresults)) { 
     $img = $row["img"]; 
     $href = $row["location"]; 
     $text = $row["name"]; 
     $uri = $_SERVER["REQUEST_URI"]; 
     if ($href == $uri){ 
     $output .= "<li class='active'><a href='$CFG->wwwroot/{$href}'><p class='cssimg'><img src='$CFG->wwwroot/theme/{$img}'/></p><p class='csstxt'>{$text}</p></a></li>"; 
     } else { 
    $output .= "<li><a href='$CFG->wwwroot/{$href}'><p class='cssimg'><img src='$CFG->wwwroot/theme/{$img}'/></p><p class='csstxt'>{$text}</p></a></li>"; 
     } 
} 
} 
echo "<link rel='stylesheet' href='/theme/css/styles.css' type='text/css'> 
<div id='leftmain'> 
<div class='cssmenu' align='left'> 
<ul>{$output}</ul> 
</div> 
</div>"; 

位置將文件名或路徑文件名,例如sitefolder/file.php

+0

REQUEST_URI曾主導 「/」 ...嘗試'如果(「/".$href == $ URI)'' – Orangepill 2013-05-13 04:55:14

+1

不working'手段?你得到什麼輸出? – 2013-05-13 04:55:42

+0

你有沒有初始化$輸出?在這裏使用它 - > $ output。= – swapnesh 2013-05-13 04:56:31

回答

0

我懷疑的問題是,$_SERVER["REQUEST_URI"]包括斜槓的URI的開始,而你的$href變量則沒有。

也許在比較之前在服務器上使用ltrim。事情是這樣的:

$uri = ltrim($_SERVER["REQUEST_URI"],'/'); 
+0

不行。我已經能夠指出它與循環有關。 – Ansipants 2013-05-13 05:41:18

+0

你說你已經調試過這個循環,所以如果你在每次循環時都回顯$ href和$ uri,那麼這些變量每次都設置爲什麼* exact *? – 2013-05-13 05:48:16

+0

$ href從特定行中回顯位置,所以$ output將創建一個行數組,$ uri顯然與循環本身無關,因此只有1個結果。如果我回顯$ href,它將回顯所有通過循環的表的位置結果。所以我們假設第1行= filename1.php,第2行= filename2.php,第3行= filename3.php,回顯href將顯示filename1.phpfilename2.phpfilename3.php希望這是有道理的... – Ansipants 2013-05-13 05:58:02