您好我正在尝试使用php在html表格中水平显示从mysql表中检索到的数据。下面的代码运行良好,除了它在我的数据库中省略了第一条记录(从第二条记录开始)。我确定它与计数器有关,但我似乎无法弄清楚如何让它停止这样做。如果有人能指出我的错误,我真的很感激!
$items = 5;
$query = "SELECT * FROM members ";
$result = mysql_query($query)
or die(mysql_error());
$row = mysql_fetch_array($result);
if (mysql_num_rows($result) > 0) {
echo '<table border="1">';
$i = 0;
while($row = mysql_fetch_array($result)){
$first_name = $row['first_name'];
if ($i==0) {
echo "<tr>\n";
}
echo "\t<td align=\center\">$first_name</td>\n";
$i++;
if ($i == $items) {
echo "</tr>\n";
$i = 0;
}
}//end while loop
if ($i > 0) {
for (;$i < $items; $i++) {
echo "<td> </td>\n";
}
echo '</tr>';
}//end ($i>0) if
echo '</table>';
}else {
echo 'no records found';
}
答案 0 :(得分:1)
尝试删除第一个
$row = mysql_fetch_array($result);
你正在调用它两次,这就是它在你的while循环中跳过1行的原因
答案 1 :(得分:1)
试试这个更简单。
$items = 5;
$query = "SELECT * FROM members ";
$result = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($result) > 0) {
echo '<table border="1">';
while($row = mysql_fetch_array($result)){
$first_name = $row['first_name'];
echo "<tr>";
for ($i=0 ; $i <= $items ;$i++) {
echo "<td align='center'>".$first_name."</td>";
}
}//end while loop
echo "</tr>";
echo '</table>';
}else{ echo 'no records found'; }
答案 2 :(得分:0)
之前我遇到过这个问题。请尝试使用do while循环。实施例
do {
// code
} while($row = mysql_fetch_array($result)); //end while loop