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