PHP - 查询和函数以及 while 子句?

发布于 2024-12-22 17:03:46 字数 801 浏览 0 评论 0原文

问题:如何将我的查询与我的函数结合在一起?我想打印我的列表,但我不知道如何连接两者。另外,我在下面正确使用“条目”吗?

/* 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;
    }

Question: How can I tie together my query with my function? I would like to print my list, but I am not sure how to connect the two. Also, am I using "entries" correctly below?

/* 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();

Do I need to use a while clause?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

病女 2024-12-29 17:03:46

是的,用 while 循环替换你的 foreach 循环。不过,从函数定义中取出“类型”(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);

Yeah, replace your foreach loop with that while loop. Take that "type" (array) out of the function definition though, you don't need to do that in loosely typed php language. Here's a rework of the code you have:

/* 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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文