我有下表:
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');
正如你所看到我有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'];
}
怎么了? :/
答案 0 :(得分:6)
没有看到任何明显的东西,所以我会选择简单的东西:
有你:
远射这些,但也许会有所帮助。
答案 1 :(得分:6)
你确定在你正在运行的实际代码中的while循环之前肯定没有$row = mysql_fetch_assoc($result)
吗?
显然,如果您上面发布的代码正是您正在运行的代码,那么这不是问题,但这可能是此行为的最常见原因。
答案 2 :(得分:3)
你确定你没有错过,因为你没有添加任何换行符,因为它全部写入一行吗?
加。由于uid的类型是INT,你应该写
WHERE uid = 1
而不是
WHERE uid = '1'
答案 3 :(得分:0)
您是否检查并分析了PHP输出的来源?也许第一行会在某处HTML中丢失。
如下面的答案所述,如果发布的代码完全您正在运行的代码,情况并非如此,但如果那里有一些HTML代码,则可能会发生这种情况