2011-12-23 48 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

是的,用while while循環替換你的foreach循環。儘管在函數定義中使用「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 2011-12-23 00:34:44

+0

@ webdude77在那裏添加一個字符串來存儲類別,並在下一個循環迭代中檢查新記錄是否屬於同一類別。我會更新代碼以儘快反映,現在我不能這麼做,gtg。 GL – 2011-12-23 01:32:13