PHP-вопрос: как исправить эти инструкции if / elseif

Я пытаюсь использовать эти инструкции if / else if для отображения этих php-страниц. Операторы if / elseif позволяют отображать страницу php. Данные хранятся в mysql. Как мы получим так, чтобы, если его уже отображали, он вводится только один раз? Спасибо. Я надеюсь, что вы можете помочь. Извините, это немного запутанно. Недавно я изучил английский. Спасибо.

if ($result_array[0] = Politics) { require 'news/political.php'; } elseif ($result_array[0] = Gossip) { require 'news/celebgossib'; } elseif ($result_array[0] = Entertainment) { require 'news/entertainment.php'; } elseif ($result_array[0] = Finance) { require 'news/finance.php'; } elseif ($result_array[0] = Health) { require 'news/health.php'; } elseif ($result_array[0] = Leisure) { require 'news/leisure.php'; } elseif ($result_array[0] = Sports) { require 'news/sports.php'; } elseif ($result_array[0] = Tech) { require 'news/tech.php'; } elseif ($result_array[0] = World) { require 'news/world.php'; } else { echo "There is no interests in your database"; } if ($result_array[1] = Politics) { require 'news/political.php'; } elseif ($result_array[1] = Gossip) { require 'news/celebgossib'; } elseif ($result_array[1] = Entertainment) { require 'news/entertainment.php'; } elseif ($result_array[1] = Finance) { require 'news/finance.php'; } elseif ($result_array[1] = Health) { require 'news/health.php'; } elseif ($result_array[1] = Leisure) { require 'news/leisure.php'; } elseif ($result_array[1] = Sports) { require 'news/sports.php'; } elseif ($result_array[1] = Tech) { require 'news/tech.php'; } elseif ($result_array[1] = World) { require 'news/world.php'; } else { echo "There is no interests in your database"; } 

Что-то вроде:

 $pages = array( 'Politics' => 'political', 'Gossip' => 'celebgossib', ... ); $used = array(); for ($i = 0; $i < 2; ++$i) { if (array_key_exists($result_array[$i], $pages) { if (!array_key_exists($result_array[$i], $used)) { # only display this section once include 'news/'.$pages[$result_array[$i]].'.php'; $used[$result_array[$i]] = true; } } else { echo "Nothing to see here."; } } 

Я не уверен точно, что вы хотите сделать, если страница не найдена; или если последующие записи являются дубликатами.

Вам нужно использовать == вместо = Я не знаю, что такое правая часть утверждения, например, Политика. Если это не переменная, вы должны поместить ее в кавычки.

Что-то вроде этого

 if ($result_array[0] == "Politics") { require 'news/political.php'; }else ... 

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

Я бы попробовал следующее:

 switch( TRUE ) { case in_array("Politics", $result_array): require 'news/political.php'; break; case in_array("Gossip", $result_array): require 'news/celebgossib'; break; // etc. } 

Как насчет использования оператора switch?

 switch $result_array[0] { case 'Politics': include('politics.php'); break; case 'This': include(...); break; case 'That': include(....); break; default: include('default.php'); break; } 

для loooong set if / then / else тестов с простыми разделами «todo», оператор switch идеален.