2017-09-25 27 views
2

鏈接將是index.php?page=PAGENAMEPAGENAME大多存儲在數據庫中,但有些是靜態的。我想要一個if/else語句來回顯標題。靜態部分並不那麼難。If/else語句與數據庫中的foreach項目可能嗎?

function current_page() { 
    $uri = $_SERVER["REQUEST_URI"]; 
    $goal = explode("?page=", $uri); 
    $keyone = $goal[1]; 
    return $keyone; 
} 

這將只顯示後?page=所以我有頁面名會發生什麼。一些靜態頁面是儀表板和設置。 if語句用來顯示靜態頁面的標題下面:

$current = current_page(); 
if ($current == 'dashboard') { 
echo 'Dashboard'; 
} 
elseif ($current == 'settings') { 
echo 'Settings'; 
}  

現在我似乎無法獲得工作的部分是用於存儲在數據庫中每個國家都應該有一個elseif聲明。 PAGENAME是存儲在數據庫中的國家iso代碼(作爲countryISO)。但是當在if語句中創建數據庫連接時,會發生錯誤unexpected 'elseif'

我正試圖用數據爲數據庫中的每一行創建一個foreach

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
$sql = "SELECT * FROM countries"; 
$result = $conn->query($sql); 

while($row = mysqli_fetch_assoc($result)) { 
    $iso = $row['countryISO']; 
    elseif ($current == $iso) { 
    echo $row['countryname']; 
    } 
} 
$conn->close(); 
+0

你知道你獲得傳遞屬性('頁面')的方式是......嗯......奇怪,過度勞累,...... - 你在這裏:'$ _GET ['page']' – Jeff

+0

併爲你的錯誤:如果你有一個'如果'之前,你只能使用'elseif'。請參閱手冊:[Controlstructures](http://php.net/manual/en/control-structures.elseif.php) – Jeff

+0

您可以使用'$ _GET ['page']來替代current_page()獲取當前頁面的名稱。同樣在你的循環中,用'if'替換'elseif'。 – Kapparina

回答

1

試試這個:

$conn = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
$sql = "SELECT * FROM countries"; 
$result = $conn->query($sql); 

while($row = mysqli_fetch_assoc($result)) { 
    $iso = $row['countryISO']; 
    if ($current == $iso) { 
    echo $row['countryname']; 
    } 
} 
$conn->close(); 

而不是使用 'ELSEIF' 的,如果使用以檢查$當前是一樣的$異。有一件事你仍然需要做的是定義$ current。