繁体   English   中英

mysql查询里面循环

[英]mysql query inside while loop

我有两张桌子。 在表-A中存储数据,并且在表B中存储用于对应表-A的注释

表-A结构

id  content     title   likes   comments_count 

id是自动增量,内容是数据。

表B结构是

        id  joke_id Description 

Table-B joke_id和Table-A id对应于相应的数据。

我正在使用此查询从表A显示5行,并希望为每个表显示3条注释 - A数据,但它显示与表-B中所有5行的表-A id数据相对应的相同内容。 将举例说明

$res2 = $con->query("SELECT * FROM `Table-A` order by id desc limit 5");

while($row2 = $res2->fetch_assoc()){
    $likes = $row2['likes'];
    $comment = $row2['comments_count'];
        $cont= $row2['content'];

$idd=$row2['id'];

$res29 = $con->query("Select * from `Table-B` where joke_id='$idd' order by id desc limit 4");

while($row29 = $res29->fetch_assoc()){
            $contpp= "";

    $contpp .= '<li>'.$row29['description'].'<p></li>';


   }

 }




$output .='<div id="'.$idd.'"  align="left" class="messagelove_box" ><div class="content_box_1">
         <div class="content_box_3_text">'.nl2br($cont).'</div> 

        <div id="header'.$idd.'" class="content_box_31_text"><ul id="commentlist" class="justList">'.$contpp.'</ul></div>



</div></div>
';
  }

但它显示每行的前4条评论相同。

在表名中使用反引号

 $res29 = $con->query("Select * from `Table-B` where joke_id='$idd' order by id desc limit 4");

现场演示:

  1. 没有反引号: http ://sqlfiddle.com/#!9 / 6cefc4 / 1

  2. 使用反引号: http ://sqlfiddle.com/#!9 / 6cefc4 / 2

也可以使用$output =""; $output .=之前$output .=

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM