php - 显示一个字符串两次?

标签 php mysql

我创建了一个连接到我的数据库的脚本,名为 mysqlconnecter:

    <?php

define("DB_USERNAME", "root");
define("DB_PASSWORD", "pass");
define("DB_DATABASE", "adventure_of_dragons");
define("DB_SERVER", "127.0.0.1");

$db_handle = mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD);

$db_found = mysql_select_db(DB_DATABASE, $db_handle);

if ($db_found || true) {

    $SQL = "SELECT * FROM members";
    $result = mysql_query($SQL) or die(mysql_error());

    while ( $row = mysql_fetch_assoc($result) ) {

    $id = $row['member_id'];
    $username = $row['username'];
    $password = $row['password'];
    $rank = $row['rank'];


}

mysql_close($db_handle);

} else {
echo "Database NOT Found " . $db_handle;
}

?>

然后我创建了另一个脚本,其中包含 mysqlconnecter.php 并将数据发布到数据库中:

<?php

include  "mysqlconnecter.php";
    echo 'ID = ' . $id . '<br>';
    echo 'RANK = ' . $rank . '<br>';
    echo 'USERNAME = ' . $username . '<br>';
    echo 'PASSWORD = ' . $password . '<br><br>';
    // two <br>'s, so we get an empty line between users

    ?>

但是输出将数据库内的数据显示两次:

ID = 4
RANK = 100
USERNAME = user
PASSWORD = password

ID = 4
RANK = 100
USERNAME = user
PASSWORD = password

我只想让它显示一次文本, 我该怎么办?

最佳答案

你的逻辑有点错误。

这是因为您的循环已完成然后您正在回显数据,因此它将始终是最后一行。

您需要在循环中回显或创建一个数组,然后稍后循环该数组。

    while ( $row = mysql_fetch_assoc($result) ) {

    $id = $row['member_id'];
    $username = $row['username'];
    $password = $row['password'];
    $rank = $row['rank'];
 //this will echo for EVERY row the loop iterates.
    echo 'ID = ' . $id . '<br>';
    echo 'RANK = ' . $rank . '<br>';
    echo 'USERNAME = ' . $username . '<br>';
    echo 'PASSWORD = ' . $password . '<br><br>';

  }

对于您的双重输出,我怀疑您已包含该文件两次。但这是猜测,因为我没有看到你的所有代码。

关于php - 显示一个字符串两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18027493/

相关文章:

php - 如何列出 pecl 包的所有版本

php - 需要正则表达式帮助

php - Mysql中如何实现表的邻接

php - 使用多个 MySQL 列值填充一维数组

mysql - 将 varchar(40) 转换为日期时间列

php - 这个分页有什么问题?

php - 在 Python 中使用 POST 将数据发送到 PHP

MySQL 错误号尝试创建外键时为 150

sql - 加入与子查询

mysql - 这个子查询有什么问题