|------------------ ------------------- -------------------|
| Name 1 | Name 2 | Name 3 |
|------------------| ------------------|-------------------|
| IMAGE1 | IMAGE1 | IMAGE2 | IMAGE2 | IMAGE3 | IMAGE3 |
|----------------- | ------------------|-------------------|
| Name 4 | Name 5 | Name 6 |
|------------------| ------------------|-------------------|
| IMAGE4 | IMAGE4 | IMAGE5 | IMAGE5 | IMAGE6 | IMAGE6 |
|----------------- | ------------------|-------------------|
这是我的php脚本
<?php
include_once("abc.php");
$query=mysql_query("select * from dbts LIMIT 6");
echo'<table>';
$i=0;
while($sam=mysql_fetch_array($query))
{
$image = $sam['image'];
$name= $sam['name'];
if($i==0)
{
echo '<tr>';
}
echo '<td width=180 border=1 COLSPAN=2>'; print"$name"; echo '</td>';
if($i==2)
{
echo '</tr>';
$i=-1;
}
$i++;
if($i==0)
{
echo '<tr>';
}
echo '<td width=90>'; print"<img src=$image width=90 height=100/>"; echo '</td>';
echo '<td width=90>'; print"<img src=$image width=90 height=100/>"; echo '</td>';
if($i==2)
{
echo '</tr>';
$i=-1;
}
$i++;
}
echo '</table>';
?>
上面是我想从php获取的表格,你能帮助我理解我的代码错误,并指出我正确的方向吗?或者请根据我的上表纠正我的代码。
答案 0 :(得分:1)
首先,您必须将查询转换为数组
include_once("abc.php");
$query = mysql_query('select * from dbts LIMIT 6');
$db = array();
while($row = mysql_fetch_array($query))
$db[] = $row;
然后
echo'<table>';
$i=0;
for($i = 0; $i <= count($db); $i+=3){
echo '<tr>';
for($j = $i; $j < $i + 3; $j++)
if(isset($db[$j]))
echo '<td width="180" border="1" COLSPAN="2">' . $db[$j]['name'] . '</td>';
echo '</tr>';
echo '<tr>';
for($j = $i; $j < $i + 3; $j++){
if(isset($db[$j])){
echo '<td width="90">' . $db[$j]['image'] . '</td>';
echo '<td width="90">' . $db[$j]['image'] . '</td>';
}
}
echo '</tr>';
echo $i;
}
echo '</table>';
我使用if(isset($ db [$ j]))来确保此代码可以正常工作,但是如果你知道你的数据库中有6行你就不必使用这个
答案 1 :(得分:1)
像
这样的东西<?php
include_once("abc.php");
$query=mysql_query("select * from dbts LIMIT 6");
$i = 0;
echo '<table><tr>';
while ($sam=mysql_fetch_array($query)) {
if ($i > 0 && $i % 3 == 0) {
// Theres a better way to do this, but its not coming to me right now...
echo '</tr><tr>';
}
echo "
<td>
<table>
<tr>
<td colspan=\"2\">{$sam['name']}</td>
</tr>
<tr>
<td>{$sam['image']}</td>
<td>{$sam['image']}</td>
</tr>
</table>
</td>";
$i++;
}
echo '</tr></table>';
?>
错误:还请添加更多错误检查并查看其他人建议的PDO。