php - 使用运算符从我的数据库中获取特定值

标签 php mysql

我试图根据用户发布的帖子数量给他们排名。我创建了一个数据库,其中包含包含“初学者、新手、中级……到掌握”的rankName 行和包含一些数字的最小行。我尝试将帖子数量 ($qtyPosts) 与最小行数进行比较。

例如:当用户有 9 个帖子时,他会获得新手排名(至少有 5 个帖子)。 这是我为此编写的代码。

PHP 代码

// calculate number of posts from user
$rowsPosts = $user->getQuantityOfPosts($userID);
$qtyPosts = 0;
foreach ($rowsPosts as $q) {
    $qtyPosts++;
}

//status

$conn = db::getInstance();

$rank = "";

$statementRank = $conn->prepare("SELECT * FROM rank WHERE rank.minimum >=       $qtyPosts");
$statementRank->execute();

   while($row = $statementRank->fetch(PDO::FETCH_ASSOC) ){
   $rank = $row['rankName'];
   }  

HTML 代码

   <h3>Status: <?php  echo $rank;  ?></h3>

但是,它没有发布正确的排名,而是发布了最新的排名,“master”。有人有什么想法吗?

最佳答案

考虑您的 WHERE 子句:

WHERE rank.minimum >= $qtyPosts

如果用户处于最低排名,则所有排名将是>=该用户的帖子计数。

您可以保持相同的逻辑,但只需添加订单和限制。像这样的事情:

WHERE rank.minimum >= $qtyPosts ORDER BY rank.minimum LIMIT 1

这会将排名从最低到最高排序,并仅选择第一个。

关于php - 使用运算符从我的数据库中获取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43853406/

相关文章:

php - html2pdf 生成不正确的 pdf

php - 如何在 Apache2 和 PHP 中启用和使用 HTTP PUT 和 DELETE?

php - PHP 中全局变量的替代方案

php - 当PHP android中的1个条件为真时,如何从服务器获取数据?

mysql - 每个组织有很多用户的数据库设计

php - 查询.SQL文件(不加载到数据库)

php - Imagick 和 GridFS

PHP : Don't show duplicated MySQL query results

mysql - HAVING 在 Laravel 中抛出错误,而不是在 PHPMyAdmin 中

mysql - 这种格式有什么问题