PHP + MySQL用户定义函数

问题描述 投票:0回答:1

我正在尝试使用自己定义的PHP函数打印所有子类别的项目。此功能的目的是打印所有项目,其父值为$parent。此功能有问题,为什么它不按我的意愿显示信息。为了使您理解我的目标,假设我们将项目归为不同的组,每个项目都有自己的组ID。调用此函数,我希望通过将组ID作为参数$parent来获取同一组的所有项目。请有人能帮助我找出此功能无法使用的原因。预先感谢。

<?php
include ('connect.php');
include ('head.html');

echo '<div class="categ"><p class="b">Health</p>';
function retrieve_column($parent){
    $sql = "SELECT item FROM category WHERE parent = $parent ORDER BY item ASC";
    $r = mysqli_query($dbc, $sql);
        if (!$r) {
            echo "Couldn’t make a connection to DB.";
        } else {
            while($row = mysqli_fetch_assoc($r)){
                for ($i=0; $i < mysqli_num_rows($r); $i++) {
                    echo '<a class="text" href="">' . $row['item'][$i] . '</a><br />';
                }
            }
        }
    }

$par = 1;
retrieve_column($par);
mysqli_free_r($r);
mysqli_close($dbc);
?>
php mysql
1个回答
0
投票

您在这里有一个功能,不能在本地使用$dbc。将此变量传递给函数:

retrieve_column($par, $dbc);

查询中有一个小错误。您需要对$parent变量使用单引号:

SELECT item FROM category WHERE parent = '$parent' ORDER BY item ASC

并且对于循环,单个while ($row = mysqli_fetch_assoc($r))被调用

<?php
include ('connect.php');
include ('head.html');

echo '<div class="categ"><p class="b">Health</p>';
function retrieve_column($parent, $dbc){
    $sql = "SELECT item FROM category WHERE parent = '$parent' ORDER BY item ASC";
    $r = mysqli_query($dbc, $sql);
        if (!$r) {
            echo "Couldn’t make a connection to DB.";
        } else {
            while ($row = mysqli_fetch_assoc($r)) {
                echo '<a class="text" href="">' . $row['item'] . '</a><br />';
            }
        }
    }

$par = 1;
retrieve_column($par, $dbc);
mysqli_free_r($r);
mysqli_close($dbc);
?>
© www.soinside.com 2019 - 2024. All rights reserved.