2011-12-23 4 views
0

질문 : 내 기능과 내 쿼리를 어떻게 함께 묶을 수 있습니까? 목록을 인쇄하고 싶지만 둘을 연결하는 방법을 모르겠습니다. 또한 아래 "항목"을 제대로 사용하고 있습니까?PHP - 쿼리 및 함수 및 while 절?

/* data handling */ 
$result = mysql_query("SELECT * FROM Items LEFT JOIN Categories on Categories.CategoryID = Items.FK_CategoryID WHERE Items.FK_UserID = $_SESSION[user_id] ORDER BY CategorySort, CategoryName ASC, ItemSort, ItemTitle"); 

/* output logic */ 
function render_list($ItemTitle, array $entries) 
{ 
    echo '<ul><li>' . $ItemTitle . '<ul>'; 
    foreach($entries as $entry) 
    { 
     echo '<li>' . $entry['ItemID'] . '</li>'; 
    } 
    echo '</ul></li></ul>'; 
} 

render_list(); 

while 절을 사용해야합니까?

// loop through topics 
    while($row = mysql_fetch_array($result)) { 
     render_list; 
    } 

답변

1

예, foreach 루프를 while 루프로 바꾸십시오. 함수 정의에서 "type"(array)을 가져 오면, 느슨하게 입력 된 PHP 언어에서는 그렇게하지 않아도됩니다. 다음은 코드의 재 작업입니다.

/* output logic */ 
function render_list($ItemTitle, $entries) 
{ 
    echo '<ul><li>' . $ItemTitle . '<ul>'; 
    while($entry = mysql_fetch_array($entries)) 
    { 
     echo '<li>' . $entry['ItemID'] . '</li>'; 
    } 
    echo '</ul></li></ul>'; 
} 

$result = mysql_query("SELECT * FROM Items LEFT JOIN Categories on Categories.CategoryID = Items.FK_CategoryID WHERE Items.FK_UserID = $_SESSION[user_id] ORDER BY CategorySort, CategoryName ASC, ItemSort, ItemTitle"); 

render_list('My Title', $result); 
+0

하이 슈레더 : 게시물 주셔서 감사합니다. 내 출력은 아래에 항목이있는 카테고리로되어 있으며 여러 범주를 인쇄해야합니다 (최종 결과는 일련의 정렬되지 않은 목록 임). 입력 한 논리에 따라 모든 항목이 순서대로 정렬됩니다. 조정할 수있는 방법이 있습니까? – webdude77

+0

@ webdude77 카테고리를 저장하기 위해 문자열을 추가하고 다음 루프 반복시 새 레코드가 동일한 카테고리인지 확인하십시오. 나는 그것을 반영하기 위해 코드를 업데이트 할 것이고, 이제는 gtg가 될 수 없다. GL –