我有一个MySQL表,看起来像这样 -
当我尝试使用以下代码打印所有行时
<?php
include_once("connect.php");
$sql = "SELECT * FROM scores";
$query = mysql_query($sql) or die("systemResult=Error");
$counter = mysql_num_rows($query);
if($counter>0)
{
print("systemResult=Success<br>");
while($data=mysql_fetch_array($query))
{
$athleteName = $data["athleteName"];
print "&athleteName=" . $athleteName;
print "<br>";
}
}
else
{
print("systemResult=Error");
}
?>
代码的完整副本 - http://pastebin.com/00WFdnrt
我得到以下输出
systemResult=Success
&athleteName=Guest-73
&athleteName=Guest-71
&athleteName=Guest-24
&athleteName=Guest-67
&athleteName=Guest-37
&athleteName=Guest-23
&athleteName=Guest-91
&athleteName=ankur
&athleteName=Guest-41
&athleteName=Guest-38
&athleteName=Guest-72
&athleteName=Guest-25
&athleteName=Guest-36
&athleteName=Guest-17
Click here for the live version
如您所见,第一行(id:1,atheleteName:ankur)未被打印。我在这里做错了什么?
答案 0 :(得分:2)
&athleteName=Guest-91
&athleteName=ankur
列出了行,您需要在查询中使用ORDER BY ID ASC
$sql = "SELECT * FROM scores ORDER BY ID ASC";
更新:根据发布的代码,mysql_fetch_array调用了两次:
if($counter>0)
{
print("systemResult=Success<br>");
$array = mysql_fetch_array($query);
while($data=mysql_fetch_array($query))
{
**只需删除第一个($array = mysql_fetch_array($query);
)
答案 1 :(得分:2)
在您的代码中
if($counter>0)
{
print("systemResult=Success<br>");
$array = mysql_fetch_array($query);
while($data=mysql_fetch_array($query))
{
在<{em> mysql_fetch_array
循环之前,你有while
。
只需删除该行,您也将获得第一条记录。
答案 2 :(得分:1)
在此文件中,您可以参考
@Akam是的 - pastebin.com/00WFdnrt for exact copy - Ankur Sharma 2分钟前
有一行没有。 9:
$array = mysql_fetch_array($query);
while($data=mysql_fetch_array($query))
导致丢失第一条记录。
你没有在你的问题中写这个。