PHP - условия if и else выполняются в цикле foreach - PullRequest
0 голосов
/ 01 октября 2018
$stmt = $conn->query("SELECT DISTINCT(title) as title FROM table WHERE title IS NOT NULL")->fetchAll();
foreach ($stmt as $tag) {
    if ($tag['title'] == 'home'){
        print_r($tag);
        echo 'tag home';                
    } elseif ($tag['title'] == 'contact'){
        print_r($tag);
        echo 'tag contact';              
    }
}

Результат одинаков на всех страницах:

Array ( [title] => home [0] => home ) 
tag home
Array ( [title] => contact [0] => contact ) 
tag contact

Желаемые результаты:

  • Когда на странице home: tag home
  • Когда на contact странице: tag contact

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Поместите переменную на страницу, которая указывает, какая это страница.На главной странице выполните:

$current_page = "home";

, а на странице контактов:

$current_page = "contact";

Затем вы можете просто выбрать информацию для страницы, на которой вы сейчас находитесь:

$stmt = $conn->query("SELECT * FROM table WHERE title = '$current_page'")->fetchAll(PDO::FETCH_ASSOC);
0 голосов
/ 01 октября 2018

Похоже, что возвращенные результаты $ stmt содержат заголовки 'home' и 'contact'.

Попробуйте:

$stmt = $conn->query("SELECT DISTINCT(title) as title FROM table WHERE title IS NOT NULL")->fetchAll();
foreach ($stmt as $tag) {
    var_dump($tag['title']);
}

, и вы лучше поймете, что это за данныевозвращается.

...