问:大家好。我正在尝试使用自己定义的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);
?>
答:你好
抱歉,很遗憾,我知道您想解释一下,但是很遗憾,我仍然感到困惑。例如,你说你在不同的群体分类的项目,因此,例如,你有一个表category的列parent和item。因此,我看到您想获取其中parent是特定内容的项目列表。首先,我会在数据库中转义$ parent,否则它parent = '$parent'会变成MySQL注入攻击或更严重的攻击。其次,您在第13行的for循环应该做什么?您为什么不能这样做:
while($row = mysqli_fetch_assoc($r)){
echo '<a class="text" href="">' . $row['item'] . '</a><br />';
}