如何在 MySQL 数据库中使用 PHP 显示字段的所有记录


how do i display all records of a field using php in a mysql database

所以我想使用 mysql 数据库获取表中特定字段的所有记录

到目前为止,我尝试过这个,但它只呼应了该领域的第一张记录

$query = ("SELECT txtpath,txtname FROM txtdocs WHERE subject='$ref'");
$result = mysql_query($query);  
$count = mysql_num_rows($result);
//iterate over all the rows
while($row = mysql_fetch_assoc($result)){
    //iterate over all the fields
    foreach($row as $key => $val){
        //generate output
        echo $key . ": " . $val . "<BR />";
    }
}

也是的,我的数据库中有超过 1 条记录

编辑:我又添加了 1 行,所以我总共可以有 3 行,但现在它只显示 2 条记录中的 3 条。

我认为这会起作用!

//$dbname= 'your connection to database';
$result = mysqli_query($dbname, 'SELECT txtpath,txtname FROM txtdocs WHERE subject="'.$ref.'"');
$count = mysqli_num_rows($result);
//iterate over all the rows
while($row = mysqli_fetch_assoc($result)){
    echo $row['txtpath'] . ': ' .$row['txtname']. '<br/>';
}

无需在循环中使用循环:

while($row = mysql_fetch_assoc($result))
{
    echo $row["txtname"] . ": " . $row["txtpath"]. "<br/>"; 
}

更新 1:

如果值$ref为 ENGLISH,则查询必须返回三条记录而不是两条。现在你需要进一步调试NY检查列值,也许你的列值周围有一些空间,比如" ENGLISH"

更新 2:

此外,在phpmyadmin中执行SELECT查询并检查返回的行数。

SELECT txtpath,txtname FROM txtdocs WHERE subject="English";

旁注

请使用 mysqli_*PDO 而不是mysql_*它已弃用且在 PHP 7 中不可用。

我很

确定你无法解释,也无法倾听。我想:

您现在表中有 3 条记录,是吗?

之前您有 2 条记录,只显示一条。

接下来,您添加了新记录并显示 2 条(共 3 条)。

在您的 SQL 查询中,您有 WHERE 语句 => 我猜未显示的记录不满足条件。

检查这一点的最简单方法是转储/回显$count

你能显示这个吗?如果结果是 2,我是对的,如果不是,我们可以进一步思考。

不幸的是,人们不认为自己,只是问,浪费你的时间和其他。

如果要显示表中特定字段的所有记录,则必须删除"where"条件,因为如果条件在表中仅包含一列,则它将仅显示一条记录。

$query = ("SELECT txtpath,txtname FROM txtdocs");
$result = mysql_query($query);  
$count = mysql_num_rows($result);
//iterate over all the rows
while($row = mysql_fetch_assoc($result)){
    //iterate over all the fields
    foreach($row as $key => $val){
        //generate output
        echo $key . ": " . $val . "<BR />";
    }
}