首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP只返回第一个MySQL结果

问PHP只返回第一个MySQL结果
EN

Stack Overflow用户
提问于 2012-08-03 04:29:03
回答 4查看 124关注 0票数 0

我有一个循环,它应该显示所有MySQL结果的摘要。它通过确定将如何产生结果来做到这一点,然后循环那么多次。因此,如果有43个结果与我的查询匹配,它将只显示第一个结果43次,而不是显示所有43个结果。请帮帮我!下面是我的代码:

代码语言:javascript
复制
if (empty($res)) {

echo 'No results found';

} else if($num>1){

    echo "<b>".$num_rows."<b> results found...<br>";

    while ($res = mysql_fetch_assoc($result)) {

    echo "<a href='#'>{$res['dealer']}</a><br>";

    }

} else {

echo "<table border=\"0\"><tr><td colspan=\"2\"><span class=\"dealer\">" . $res['dealer'] . "</span></td></tr><tr><td><span class=\"label\">Pin: </span><span class=\"inf\">" . $res['pin'] . "</span></td><td><span class=\"label\">OB CODE: </span><span class=\"ob\">" . $res['ob'] . "</span></td></tr><tr><td><span class=\"label\">Program Director:</span></td><td><span class=\"inf\">" . $res['contact'] . "</span></td></tr><tr><td valign=\"top\"><span class=\"label\">Address:</span></td><td><span class=\"inf\">" . $res['address'] . "<br>" . $res['city'] . ", " . $res['state'] . "<br>" . $res['zip'] . "</span></td></tr><tr><td><span class=\"label\">Dealer Phone:</span></td><td><span class=\"inf\">" . $res['phone'] . "</span></td></tr><tr><td><span class=\"label\">Codes Valid on:</span></td><td><span class=\"inf\">" . $res['website'] . "</span></td></tr></table>";

}

非常感谢你的预告!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-03 04:33:40

这是因为您只获取了第一行(当您使用$res = mysql_fetch_assoc($result);时)。您尝试做的事情实际上是不必要的:mysql_fetch_assoc()会在每次运行时自动将数据指针向前移动。相反,您可以做的(实际上也是常见的做法)是:

代码语言:javascript
复制
//...
while ($res = mysql_fetch_assoc($result)) {
    echo "<a href='#'>{$res['dealer']}</a><br />";
}
//...

顺便说一句,mysql_*函数很快就会被弃用。您可以使用mysqli或PDO;如果您是一个懒惰的游手好闲的人,有很多代码要切换(像我一样),那么您可以使用mysqli过程函数-它们几乎与原始的mysql_*函数相同。

票数 3
EN

Stack Overflow用户

发布于 2012-08-03 04:31:15

你应该使用

代码语言:javascript
复制
$res = mysql_fetch_assoc($result);

每次要检索新行时

票数 1
EN

Stack Overflow用户

发布于 2012-08-03 04:31:55

你必须在你的循环中这样做:

代码语言:javascript
复制
$res = mysql_fetch_assoc($result);

否则只拉取第一个结果的...as。下面是正确的方法:

代码语言:javascript
复制
while($res = mysql_fetch_assoc($result)){
    echo "<a href='#'>".$res['dealer']."</a><br>";
    i++;
}

干杯

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11785237

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档