我已经从数据库中提取了我拥有的所有域,我想对所有添加到数据库中的域进行注释。
$results = $mysqli->query("SELECT domain_name, id_view FROM domain GROUP BY domain_name ORDER BY domain_name");
$comment = $mysqli->query("SELECT domain_name, id_view, comment FROM domain_comment");
$id_array = array();
while($row = mysqli_fetch_array($comment)) {
$id_array[] = $row['comment'];
$id_array[] = $row['id_view'];
}
while($row = mysqli_fetch_array($results))
{
$section = $row['id_view'];
foreach ($id_array as $sectionname) {
if ($sectionname == $section) {
echo $sectionname;
}
}
}
它收到的数据是VIEW ID,而不是Comment,我在做什么错了?
编辑: 当他给出Select查询时:
$comment = $mysqli->query("SELECT comment FROM domain_comment INNER JOIN domain ON domain_comment.id_view = domain.id_view");
while($ row = mysqli_fetch_array($ results)) {
while($row2 = mysqli_fetch_array($comment))
{
echo $row2['comment'];
}
}
它将在第一个域中打印所有评论。
我得到的结果是:
他想要的结果:
答案 0 :(得分:0)
这部分
$id_array[] = $row['comment'];
$id_array[] = $row['id_view'];
您想做什么?
在id数组中插入注释?在这种情况下,id_array将具有一个注释和一个id,我不认为这是您想要的。第二个循环肯定是我们$ row2,它更安全,不会混淆。内部加入最快的方式。我想你已经在那里了。
尝试删除该行
$id_array[] = $row['comment'];
然后检查。
对于innerjoin,您可以尝试在两个键(也就是域)上进行内部联接。
$comment = $mysqli->query("SELECT comment FROM domain_comment INNER JOIN domain ON domain_comment.id_view = domain.id_view and domain_comment.domain_name = domain.domain_name");
答案 1 :(得分:0)
while($row = mysqli_fetch_array($comment)) {
$id_array[$row['id_view']]['comments'][] = $row['comment'];
}
while($row = mysqli_fetch_array($results))
{
$id_array[$row['id_view']]['data'] = $row;
}
在转储$id_array
之后,您可以尝试此解决方案,在这种情况下,处理数据要容易得多。