如果/ else语句中有foreach项可能吗?

时间:2017-09-25 14:25:57

标签: php if-statement

链接将为index.php?page=PAGENAMEPAGENAME主要存储在数据库中,但有些是静态的。我想要一个if / else语句来回显标题。静态部分并不那么难。

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/else语句中建立数据库连接时,会发生错误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();

1 个答案:

答案 0 :(得分: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();

使用if来检查$ current是否与$ iso相同,而不是使用'elseif'。你还需要做的一件事就是定义$ current。