Не правильно переходит по пунктам меню, хоть ссылки правильные?

Созданы пункты меню и их ссылки для перехода, по шаблону, в которых $id_menu и $name_menu достаются и БД.
protected function get_menu(){
		$row = $this->menu_array();
		echo '<div id="menu">
				<ul type="none">';
				
		echo '<a href="?option=main"><li>Главная</li></a>';
		
		foreach($row as $item){
			printf('<a href="?option=main&id_menu=%s"><li>%s</li></a>', $item["id_menu"], $item["name_menu"]);
		}
		
		echo '</ul>
				</div>';
	}
	
	protected function menu_array(){
		$query = "SELECT id_menu, name_menu FROM menu";

		$result = mysql_query($query);
		if(!$query){
			exit(mysql_error());
		}
		else {
			$row = array();
			for($i = 0; $i < mysql_num_rows($result); $i++){
				$row[] = mysql_fetch_array($result, MYSQL_ASSOC);
			}
			return $row;
		}
	}
public function get_body(){
		$this->get_header();
		$this->get_menu();
		$this->get_left_bar();
		$this->get_content();
		$this->get_footer();
	}
	
	abstract function get_content();


Далее создан обработчик данных ссылок и вывод контента, также из БД.

<?php
class menu extends ACore {

	public function get_content() {

		echo '<div id="content">';
		if(!$_GET['id_menu']) {
			echo "Не правильные данные для вывода страницы!";
		}
		else {
			$id_menu = (int)$_GET['id_menu'];
			if(!id_menu) {
				echo "Не правильные данные для вывода страницы!";
			}
			else {
				$query="SELECT id_menu,name_menu,text_menu
						FROM menu
						WHERE id_menu='$id_menu'";

				$result = mysql_query($query);
				if(!$result) {
					exit(mysql_error());
				}
				else{
					$row = mysql_fetch_array($result, MYSQL_ASSOC);
					printf('
						<div class="block_home_page">
						<div class="block_h2">
							<h2>%s</h2>
						</div>
						<div class="block_text">
							<p>%s</p>
	  					</div>
					</div>',
					$row['name_menu'],$row['text_menu']);
				}
			}
		}
		echo '</div>';
	}
}
?>


Но в итоге при переходи по пунктам меню, переход совершается на главную страницу.
Как можно решить эту проблему?
5a3977da40f72508924198.png5a3977e9cc275244878784.png5a3977f06c441325858289.png
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
NightmareZz
@NightmareZz
Нищий разработчик из Симферополя
Что-то меня уже начинают немного подбешивать вопросы в стиле "Я вам дам простыню кода, а вы мне найдите ошибку".

Вместо (int)$_GET['id_menu']делайintval($_GET['id_menu'])

Вместо mysql_queryиспользуй PDO.

Выведи в страницу, что у тебя в $id_menu вообще приходит:
echo $id_menu;

Посмотри, нет ли ошибок при выполнении запроса к БД:
cat /var/log/mysql/error.log

Ну и т.д. Учить отлаживать свои скрипты. Я уже не говорю про хотя бы юнит-тестирование.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы