php - mysqli_num_rows 生成无限量的数据
问题描述
所以,我会尽量用我的英语知识来解释它。我试图从我的数据库中计算数据,基本上 - 我有多少具有相同 ID 的字段。这是来自数据库的图像。
例如,在帖子中我有评论系统并且它有效,我有这个 PHP 代码来计算我有多少与评论和 id 相同的字段。这是代码:
<?php
$revposid = $res['content_id'];
$pos="SELECT review FROM comments WHERE review='positive' and postid=$revposid";
$neg="SELECT review FROM comments WHERE review='negative' and postid=$revposid";
$neu="SELECT review FROM comments WHERE review='neutral' and postid=$revposid";
if ($result=mysqli_query($_db,$pos)){$rowcountpos=mysqli_num_rows($result);}
if ($result=mysqli_query($_db,$neg)){$rowcountneg=mysqli_num_rows($result);}
if ($result=mysqli_query($_db,$neu)){$rowcountneu=mysqli_num_rows($result);}
?>
<div class="reviews" id="reviews">
<span class="good"><b class="fa fa-thumbs-up"></b><?php echo $rowcountpos ?></span>
<span class="neutral"><b class="icon-thumbs-up"></b><?php echo $rowcountneu ?></span>
<span class="bad"><b class="fa fa-thumbs-down"></b><?php echo $rowcountneg ?></span>
</div>
当我尝试使用相同的代码时
$revposid = $cont['content_id'];
$pos="SELECT content_id FROM user_content_like WHERE content_id=$revposid";
if ($result=mysqli_query($_db,$pos)){$rowcountpos=mysqli_num_rows($result);}
在我的另一个脚本中,我有喜欢的系统,它应该显示我所有的喜欢和喜欢的帖子的总喜欢但是当我使用它时它显示无限量的数据,我不知道为什么。这是完整的代码,我将不胜感激一些帮助或解释。
<?php $ususername = $_GET['user_username'];$sql = "SELECT * FROM user_details WHERE user_username='$ususername'";$usresult = mysqli_query($_db,$sql);?>
<?php if( ! mysqli_num_rows($usresult) ) {
echo " Ooops? <br> <br>User <b>".$_GET["user_username"]."</b> doesn't exist.";
} else {
while($usrow = mysqli_fetch_array($usresult,MYSQLI_BOTH)) {?>
<?php
$current_user = $usrow['user_id'];
if ($_db->connect_error) {
die("Connection failed: " . $_db->connect_error);
}
$sql = "SELECT * FROM user_content_like WHERE user_id=$current_user ORDER BY date_added DESC;";
$result = $_db->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$content_id = $row['content_id'];
$sql1 = "SELECT * FROM content WHERE content_id=$content_id";
$result1 = $_db->query($sql1);
if ($_SESSION['user_id'] == $usrow['user_id']) {$output = '
<button type="button" class="unlike_button" onclick="unlike(this);" name="like_button" data-content_id="'.$row["content_id"].'" ><i class="fa fa-minus"></i></button>
';} else {
$output = '';
}
while($cont = $result1->fetch_assoc()) {
$revposid = $cont['content_id'];
$pos="SELECT content_id FROM user_content_like WHERE content_id=$revposid";
if ($result=mysqli_query($_db,$pos)){$rowcountpos=mysqli_num_rows($result);}
echo '
<div class="community-feed-thread">
<div class="community-icon-thread"></div>
<div class="community-comments-thread">'.$output.'</div>
<a href="'.$cont["content_id"].'" class="community-title-thread"><h3>'.$cont["title"].'</h3>
<span class="likes-desc"> Total likes: '.$rowcountpos.'</span>
</a>
</div>
';
}
}}
else {
echo " hmmmmmmmmmmmm.<Br><br>". $usrow["user_username"]." doesn't like anything. ";
}
$_db->close();
?>
<?php }}?>
解决方案
您对代码中的不同结果集重新使用相同的变量...
$result = $_db->query($sql);
和
if ($result=mysqli_query($_db,$pos))
您需要确保只使用一次变量名,否则它可能会在其他循环中产生副作用。
推荐阅读
- angular - 角度分页在数据表中不起作用
- c++ - DLL 和 EXE 中具有相同名称和父级但实现不同的类中的问题
- spring - 带有弹簧的消息驱动 POJO。收不到消息
- json - 关于 API RESTful 请求的说明
- java - NetworkSecurityConfig:未指定网络安全配置,使用平台默认错误响应代码:400
- gcc - 覆盆子半精度浮点(binary16,替代,__fp16)上的 gcc 使用库函数
- html - 如何添加 div 的平滑三角形底部
- html - 对象变量或带块变量未设置getelementsbyname vba
- python - 无法从此 URL 发布“匹配日期”
- terraform - 将 cloudflare_zone_settings_override 应用于多个区域