我已经查看了其他一些答案,但它们似乎没有解决我的特定问题(或者我编码错误,这也是可能的)。
我知道我的SQL代码工作正常,因为我获得了所有19行输出,但是当我将它输出到PHP页面时,页面将我缩短了5行。
如果我不尝试通过任何方式在三列中显示结果(并且只使用一列),则显示所有内容。当我尝试用'X'做三个时,它是什么时候开始切断结果。
这是我以前使用的旧代码:
$fleet_query_results = @mysql_query($fleet_query, $connection) or die(mysql_error());
while($row = mysql_fetch_array($fleet_query_results)) {
$display_fleet .= "<tr>";
for($i = 1; $i < 4 && $row = mysql_fetch_array($fleet_query_results); $i++) {
$ship_info = $row['ship_info'];
$mem_info = $row['mem_info'];
$ship_link = $row['ship_link'];
$display_fleet .= "
<td valign=\"top\"><div id=\"fleet\"><div id=\"fheader\">$ship_info</div><br/><img align=\"center\" height=\"210\" width=\"350\" alt=\"$ship_name\" src=\"$ship_link\" /><br /><div id=\"fmem\">$mem_info</div></div></td>
";
}
$display_fleet .= "</tr>";
}
有什么想法吗?它正在切断第一,第四,第九,第十三和第十七个结果。
示例页面结果:
<table border="1">
<tr><td>Header<br />Image<br />People</td><td>Header<br />Image<br />People</td><td>Header<br />Image<br />People</td></tr>
<tr><td>Header<br />Image<br />People</td><td>Header<br />Image<br />People</td><td>Header<br />Image<br />People</td></tr>
<tr><td>Header<br />Image<br />People</td><td>Header<br />Image<br />People</td><td>Header<br />Image<br />People</td></tr>
</table>
新代码有效,但 UGLY :
$fleet_query_results = @mysql_query($fleet_query, $connection) or die(mysql_error());
while($row = mysql_fetch_array($fleet_query_results)) {
$display_fleet .= "<tr>";
$ship_info = $row['ship_info'];
$mem_info = $row['mem_info'];
$ship_link = $row['ship_link'];
$display_fleet .= "
<td valign=\"top\"><div id=\"fleet\"><div id=\"fheader\">$ship_info</div><br/><img align=\"center\" height=\"210\" width=\"350\" alt=\"$ship_name\" src=\"$ship_link\" /><br /><div id=\"fmem\">$mem_info</div></div></td>
";
for($i = 1; $i < 3 && $row = mysql_fetch_array($fleet_query_results); $i++) {
$ship_info = $row['ship_info'];
$mem_info = $row['mem_info'];
$ship_link = $row['ship_link'];
$display_fleet .= "
<td valign=\"top\"><div id=\"fleet\"><div id=\"fheader\">$ship_info</div><br/><img align=\"center\" height=\"210\" width=\"350\" alt=\"$ship_name\" src=\"$ship_link\" /><br /><div id=\"fmem\">$mem_info</div></div></td>
";
}
$display_fleet .= "</tr>";
}
答案 0 :(得分:1)
您的while
正在吃一些数据行。
$fleet_query_results = @mysql_query($fleet_query, $connection) or die(mysql_error());
$rows=1;
while($rows) {
$display_fleet .= "<tr>";
for($i = 1; $i < 4 && $row = mysql_fetch_array($fleet_query_results); $i++) {
$rows=$row;
if (!$row) break;
$ship_info = $row['ship_info'];
$mem_info = $row['mem_info'];
$ship_link = $row['ship_link'];
$display_fleet .= "
<td valign=\"top\"><div id=\"fleet\"><div id=\"fheader\">$ship_info</div><br/><img align=\"center\" height=\"210\" width=\"350\" alt=\"$ship_name\" src=\"$ship_link\" /><br /><div id=\"fmem\">$mem_info</div></div></td>
";
}
$display_fleet .= "</tr>";
}
或,如下所述:
$i=0
while($row = mysql_fetch_array($fleet_query_results)) {
if( $i % 4 = 0 )
$display_fleet .= "<tr>";
$ship_info = $row['ship_info'];
$mem_info = $row['mem_info'];
$ship_link = $row['ship_link'];
$display_fleet .= "
<td valign=\"top\"><div id=\"fleet\"><div id=\"fheader\">$ship_info</div><br/><img align=\"center\" height=\"210\" width=\"350\" alt=\"$ship_name\" src=\"$ship_link\" /><br /><div id=\"fmem\">$mem_info</div></div></td>
";
if( ++$i % 4 = 0 )
$display_fleet .= "</tr>\n";
}
// clean add the missing cells to last row.
if( $i % 4 != 0 )
{
while($i++ %4)
$display_fleet .= "<td></td>";
$display_fleet .= "</tr>\n";
}