简单的mysql查询只返回一行

2 php mysql sql

我有下表:

CREATE TABLE IF NOT EXISTS `notes` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL DEFAULT '0',
`note` text,
PRIMARY KEY (`id`)
)

INSERT INTO `notes` (`id`, `uid`, `note`) VALUES
(1, 1, 'noteteeext'),
(2, 1, 'notenotenotenote');
Run Code Online (Sandbox Code Playgroud)

你可以看到我有2行uid = 1但它只返回1行!(第二个)

$sql = "SELECT id,uid,note
                    FROM notes
            WHERE uid = 1";
$result = mysql_query($sql);


while ($row = mysql_fetch_assoc($result)) {
 echo $row['note'];
}
Run Code Online (Sandbox Code Playgroud)

怎么了?:/

Bes*_*ska 6

没有看到任何明显的东西,所以我会选择简单的东西:

你有:

  • 直接在db中查看确定你确实有两行?
  • 验证这两行是否具有您期望的数据,在您期望的列中?
  • 可能是第一条记录是以某种方式自动检索的,所以你实际上是在你的while循环条件下进入第二条记录了吗?
  • 如果添加第三行会发生什么?如果您得到1或2个结果,无论哪种方式,它都可能提供一些额外的信息.

远射这些,但也许会有所帮助.


Wil*_*iam 6

你确定$row = mysql_fetch_assoc($result)在运行的实际代码中肯定没有while循环吗?

显然,如果您上面发布的代码正是您正在运行的代码,这不是问题,但这将是此行为的最常见原因.