Php 仅返回一行的简单mysql查询

Php 仅返回一行的简单mysql查询,php,sql,mysql,Php,Sql,Mysql,我有下表: 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, 'n

我有下表:

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');
正如您所看到的,我有两行uid=1,但它只返回一行!(第二个)


怎么了/

看不到任何明显的东西,所以我会用简单的东西:

你是否:

  • 直接查看数据库以确定实际上有两行
  • 验证这两行在您期望的列中是否包含您期望的数据
  • 第一条记录是否会以某种方式被自动检索,因此您实际上是在while循环条件下转到第二条记录

  • 如果添加第三行,会发生什么?如果您得到1或2个结果,无论哪种方式,它都可能提供一些附加信息

这些都是长镜头,但也许有些东西会有所帮助。

你确定你没有错过观看,因为它都写在一行上,因为你没有添加任何换行符

另外。由于uid的类型是INT,因此应该编写

WHERE uid = 1
而不是

WHERE uid = '1'

您是否检查并分析了PHP输出的源代码?也许第一行在HTML中的某个地方丢失了


正如下面的答案所述,如果发布的代码与您正在运行的代码完全一致,则情况并非如此,但如果其中也有一些HTML代码,则可能会发生这种情况。

您确定肯定没有
$row=mysql\u fetch\u assoc($result)
在实际运行的代码中执行while循环之前


显然,如果您上面发布的代码正是您正在运行的代码,那么这不是问题所在,但这可能是导致这种行为的最常见原因。

您在哪里定义$result?你能补充一下吗?mysql\u num\u rows($result)返回什么?您是否尝试过直接在数据库上运行查询(或通过phpMyAdmin)?+1…在排除故障时,如果可以,请删除软件层@hobodave:O它返回所有行。嗯……不错。我讨厌我做那种傻事。“如果你再加上第三排会怎么样?”这是我要尝试的第一件事哦……那么我喜欢选项3。不知怎的,你从第一排开始,然后在循环中跳过它。在开始while循环之前,您是否检查了$result中是否有内容?只需再检查一次代码,猜猜您是对的..抱歉浪费了大家的时间。干得好!也。。。这说明了如果可以的话,为什么在PHP之外进行故障排除,例如phpMyAdmin或MySQL查询浏览器。
WHERE uid = '1'