基本上,我试图遍历所有帖子并找到其合适的标签。 $ id变量是返回的所有帖子ID的数组。因此,第一个for循环应该为帖子找到所有标签,并且如果没有任何该帖子将标签设置为0(对于$ post_tags ['这是帖子ID'])通过多维关联数组循环并输出结果
看起来似乎如果没有帖子的标签,它会简单地打印出“没有指定的标签”(如预期的那样)。但是,似乎正在发生的事情是,打印的标签是来自相应后期PLUS的所有标签,返回的是之前帖子的标签。它似乎增加了已经返回的内容。
我真的不明白为什么这样做,并考虑到没有错误提出我觉得很难解决。任何帮助或指导将不胜感激!
if($stmt = $mysqli->prepare("SELECT username, avatar FROM members WHERE id = ? LIMIT 1")){
// Get the posts tags
if($tgs = $mysqli->prepare("SELECT tag FROM tags WHERE post_id = ?")){
for($i = 0; $i < count($id); $i++){
$tgs->bind_param('i', $id[$i]);
$tgs->execute();
$tgs->store_result();
$tgs->bind_result($tag);
while($tgs->fetch()){
$tags[] = $tag;
}
if($tgs->num_rows > 0){
$post_tags[$id[$i]] = $tags;
}else{
$post_tags[$id[$i]] = 0;
}
}
$tgs->close();
for($i = 0; $i < count($id); $i++){
$stmt->bind_param('i',$by[$i]);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($username, $avatar);
$stmt->fetch();
echo '<ul class="f_ul_subject" style="margin-top:3px">
<li class="f_cat_subject" style="font-size:10px;line-height:12px;">';
for($j = 0; $j < count($post_tags[$id[$i]]); $j++){
if($post_tags[$id[$i]] != 0){
echo '<a class="post_tag" href="http://localhost/Site/NetPerry/forum/search.php?v=' . $post_tags[$id[$i]][$j] . '&tags=true">
<span>' . $post_tags[$id[$i]][$j] . '</span>
</a>';
}else{
echo 'No specified tags';
}
}
echo '</li>
</ul>
</li>';
}
}
}
'$标签[] = $标签;'是一个问题 –
当然,太本地化问题,“发现我的错误我码”。 –
感谢您的回复,它让我走向了正确的方向,现在看起来很有效。尽管没有义务回复,但如果您觉得“找到我的代码中的错误”对于本网站来说是合适的,那么您没有任何帮助。虽然,谢谢你,你做到了。 – iyop45