PHP - 行计数多次显示相同数字的麻烦,我该如何解决这个问题?

时间:2015-03-26 00:07:11

标签: php mysql

所以我目前正在开展一个项目, 我有一个有一些数字的部分,每个子部分应该显示特定用户的记录或行数。我设法显示行数,但似乎有一个问题,行数显示3次。例如,行计数= 3 3 3而不是行计数= 3.

<?php
    try {
        $stmt = $db->prepare('SELECT banned_players.uuid, player_data.uuid FROM banned_players, player_data WHERE username = :username and banned_players.uuid >= player_data.uuid');
        $stmt->execute(array(':username' => $_GET['name']));
    } catch(PDOException $e){
        //if an error is thrown a message will display
        echo $e->getMessage();
        exit();
    }
?>
<?php if ($stmt->rowCount() <1 ): ?>
    0
<?php else: ?>
    <?php while(false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC))): ?>
        <?php $count = $stmt->rowCount(); 
        echo $count; ?>
    <?php endwhile; ?>
<?php endif; ?>

1 个答案:

答案 0 :(得分:0)

您正在回显每一行的行数。因此,如果您有5行,则会获得5 5 5 5 5

<?php while(false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC))): // this starts looping through each row ?> 
    <?php $count = $stmt->rowCount(); 
    echo $count; // this echoes the row count for every row because of the loop ?>
<?php endwhile; ?>

如果我理解你想要什么,请删除循环。或者,如果您需要循环来回显行中的数据,请在循环之前或之后放置行计数。

Row Count: <?php echo $stmt->rowCount(); ?>
<?php while(false !== ($row = $stmt->fetch(PDO::FETCH_ASSOC))): ?>
    Echo some data from $row here
<?php endwhile; ?>