2012-03-30 10 views
0

데이터베이스에서 값을 가져 와서 현재 페이지 제목으로 사용하고 싶습니다. 연결이 제대로 작동하지만 페이지가 잘로드되지만 변수에 대한 액세스가 필요하며이 값을 계산할 수 없습니다. 내 페이지가 구성되는 방법데이터베이스 변수에 액세스하기

:

Blog.php

require_once($_SERVER['DOCUMENT_ROOT'] . '/inc/header.php'); 
if (isset($_GET['id']) && is_numeric($_GET['id'])) { 
    $blogid = $_GET['id']; 
    $stmt = $dbh->prepare("SELECT id, title, slug, body, image, author, date, category from blog WHERE id= :id ORDER BY date DESC"); 
    $stmt->execute(array('id' => $_GET['id'])); 
    $row = $stmt->fetch(); 
} 

if(isset($row['title'])) { 
    $pageTitle = $row['title']; 
} else { 
    $pageTitle = "Something Here"; 
} 

$pageTitle$header.php의 변수입니다. 각 페이지의 <title> 수를 제어합니다.

문제는

내 데이터베이스 연결 $dbhheader.php 설정됩니다. 이것은 내가 너무 늦을 때까지 $row['title']에 접근 할 수 없다는 것을 의미합니다.

질문 :이 require_once($_SERVER['DOCUMENT_ROOT'] . '/inc/header.php'); 전에 $row['title']에 접근하기 위해 구조 조정을 어떻게

. 해야 할 필요가 없다면 헤더에서 데이터베이스 연결을 풀고 싶지는 않습니다.

감사합니다.

+0

그래서, 당신은 HTML 페이지의 섹션에 아무것도 넣지 수 있습니까? – ArendE

+0

수정하십시오. 그게 전부'header.php'에 설정되어 있습니다 –

+0

그러면 불가능합니다. 당신은 자바 스크립트 수정을 사용할 수 있습니다; 이것은 당신의 페이지 (html 본문)에 숨겨진 값을 설정하고 javascript가 그것을 얻고 body onload를 사용하여 페이지 제목으로 설정하게합니다. – ArendE

답변

0

귀하의 <title></tile>이 출력물에 이미 인쇄되어 있기 때문에 그렇게 할 수 없습니다. 하드 코어 수정은 버퍼 (ob_start ob_get_content 포함)에서 렌더링을 사용하여 렌더링 된 내용을 구문 분석하여 <title> 태그의 내용을 변경하는 것입니다.

그러나 영리한 방법은 데이터베이스에서 헤더를 가져 오는 것입니다. 현재 구조

감사

+0

'그러나 영리한 방법은 헤더에서 데이터베이스를 가져 오는 것입니다. '나는 그것을 꺼내서 별도로 모든 페이지에 포함시킬 수 있지만 모든 파일을 검토하고 싶지는 않습니다. 나는 –

+0

에해야한다 나는 completly 이해한다, 해로운 코멘트 인 것을 의미하지 않았다. 실제로 header.php 스크립트에서 제목에 대한 쿼리를 만드는 또 다른 솔루션이 있지만 다른 페이지에 사용할 쿼리를 확인해야합니다. 데이터베이스 객체를 다른 파일에 저장하는 것은 고통 스러울 것입니다.하지만 유연성이 많이 향상 될 것입니다. – grifos

+0

나는 그것을 해로운 것으로 생각하지 않았다. 귀하의 의견에 감사드립니다! –

관련 문제