2013-04-24 1 views
0

$generic이라는 변수가 SQL 쿼리를로드하는 함수에 전달됩니다.이 변수는 다음과 일치하는 형식으로 사용됩니다. 테이블의 slugcms_web_pages; 이 경우에 $generic이 'bar'와 같다고 가정하면 일치하는 행의 id을 가져 와서 cms_web_page_content의 행과 page_id의 행을 일치 시키려면 cms_web_page_content의 모든 데이터를 내부에 넣습니다 배열.where 절에 따라 테이블에서 열을 선택한 다음 다른 테이블의 다른 열과 일치 시키십시오.

표 "cms_web_pages"

id | title | slug 
----------------- 
1 | foo | bar 
2 | bar | foo 

표 "cms_web_page_content"

id | title | content | position | page_id 
----------------------------------------- 
1 | foo | bar  | 1  | 1 
2 | bar | foo  | 2  | 1 
3 | doh | doh  | 1  | 2 

SQL 쿼리 :

$link = db_connect(); 

$qry = mysqli_query($link, 
        "SELECT page.*, content.* 
        FROM cms_web_pages AS page 
        WHERE page.slug = '".$generic."' 

        LEFT JOIN cms_web_page_content AS content 
        ON page.id = content.page_id) 

        ORDER BY content.position ASC") 

        or die(mysqli_error($link) 
        ); 

$content = array(); 

은 도움이 될 수 있습니다 사전 사람에 감사드립니다.

+0

JFYI, 데이터베이스 이름은 mysqli가 아니고 mysqli –

+0

입니다. 태그를 업데이트했습니다. – zealisreal

답변

1
Use as : 
"SELECT page.*, content.* 
        FROM cms_web_pages AS page 
        LEFT JOIN cms_web_page_content AS content 
        ON (page.id = content.page_id) 

        WHERE page.slug = '".$generic."' 

        ORDER BY content.position ASC" 
+0

답장을 보내 주셔서 감사합니다. 해결책을 찾은 후에는 두려워한 행을 다시 가져 오지 않았습니다. 'if (mysqli_num_rows ($ qry)! == 1) : echo "찾을 수있는 행이 없습니다."; endif;'페이지가로드 될 때 실행됩니다. – zealisreal

+0

죄송합니다. 단지 if 행 (mysqli_num_rows ($ qry) <1) :'로 변경하지 않으면 'if (mysqli_num_rows ($ qry)! == 1) :' 지금 일한다, tyvm. – zealisreal

관련 문제