我正在尝试使用自己定义的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);
?>
您在这里有一个功能,不能在本地使用$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);
?>