所以我想使用 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 />";
}
}