我正在尝试从MySQL查询生成HTML表。这是我试图从MySQL查询生成的表的格式:
--------------------------
| Image1 | Image2 | Image3 |
|----------------- --------|
| Name1 | Name2 | Name3 |
|----------------- --------|
| Image4 | Image5 | Image6 |
|----------------- --------|
| Name4 | Name5 | Name6 |
--------------------------
我正在尝试使用我的php代码创建上表。以下是我的代码,但它无法正常工作你可以帮助我。
include_once("abc.php");
$query=mysql_query("select * from movix 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>'.' <img src="'.$image.'"/> '.'</td>';
echo '</tr>'; echo '<tr>';
echo '<td>'.$name.'</td>';
echo '<tr>';
if($i==2)
$i=-1;
}
$i++;
}
echo '</table>';
你能帮我理解我的代码错误,并指出我正确的方向吗?或者请根据我的上表纠正我的代码。
答案 0 :(得分:0)
创建表格行 - &gt;列,从左到右。您正在尝试按列构建表格 - &gt;行,从上到下。
最简单的方法是将名称放在同一个单元格中,并通过换行符或div将其与图像分开
修改,因为您没有在其他地方使用$image
/ $name
个变量,您可以直接使用它们,并删除另外两行代码
echo '<table>';
$i=0;
while($sam=mysql_fetch_array($query)) {
if($i%3==0){ // using modulus % to determine if 1st cell
echo '<tr>';
}
echo '<td>'.' <img src="'.$sam['image'].'"/> ';
echo '<br />'.$sam['name'].'</td>'; // echo image name with a line break inside image cell
if($i%3==2){ // using modulus % to determine if 3rd cell
echo '</tr>';
}
$i++;
}
echo '</table>';
如果您仍然希望图像下方的单元格中的图像名称,一种方法是连接名称,并在第三个单元格之后添加行 -
echo '<table>';
$i=0;
while($sam=mysql_fetch_array($query)) {
if($i%3==0){ // using modulus % to determine if 1st cell
echo '<tr>';
$names = ''; // create image name variable
}
echo '<td>'.' <img src="'.$sam['image'].'"/> '.'</td>';
$names .= '<td>'.$sam['name'].'</td>'; // concat each image name, within a cell
if($i%3==2){ // using modulus % to determine if 3rd cell
echo '</tr>';
echo '<tr>'. $names . '</tr>';
}
$i++;
}
echo '</table>';
答案 1 :(得分:0)
您需要创建包含3个cols的2行,然后回显它们。
[不知道php,但我想以下代码应该可以工作或至少知道如何实现它。]
$row1="<tr>";
$row2="<tr>";
$i=3;
echo'<table>';
while($sam=mysql_fetch_array($query))
{
$image = $sam['image'];
$name = $sam['name'];
$row1 = $row1.'<td><img src="'.$image.'"/></td>';
$row2 = $row2.'<td>'.$name.'</td>';
$i--;
if($i==0){
echo row1.'</tr>';
echo row2.'</tr>';
$row1="<tr>";
$row2="<tr>";
$i=3;
}
}
echo '</table>';
答案 2 :(得分:0)
自定义数组的完整示例,类似于从mysql获得的数据。
如果您复制并粘贴下面的代码,它将起作用,您可以调整它..
<?php
$sams=array();
array_push($sams, array("image"=>"image1","name"=>"name1"));
array_push($sams, array("image"=>"image2","name"=>"name2"));
array_push($sams, array("image"=>"image3","name"=>"name3"));
array_push($sams, array("image"=>"image4","name"=>"name4"));
array_push($sams, array("image"=>"image5","name"=>"name5"));
array_push($sams, array("image"=>"image6","name"=>"name6"));
array_push($sams, array("image"=>"image7","name"=>"name7"));
array_push($sams, array("image"=>"image8","name"=>"name8"));
array_push($sams, array("image"=>"image9","name"=>"name9"));
array_push($sams, array("image"=>"image10","name"=>"name10"));
array_push($sams, array("image"=>"image11","name"=>"name11"));
array_push($sams, array("image"=>"image12","name"=>"name12"));
array_push($sams, array("image"=>"image13","name"=>"name13"));
echo "<html>";
echo "<body>";
echo '<table width="400" border="1" cellspacing="0" cellpadding="0"><tr>';
$i=0;
$limit=3;
foreach($sams as $sam)
{
$image = $sam['image'];
$name = $sam['name'];
if($i==3){
echo '</tr><tr>';
}
echo "<td>";
echo '<table width="200" border="1" cellspacing="0" cellpadding="0"><tr><td>';
echo $image;
echo '</td></tr><tr><td>';
echo $name;
echo '</td></tr></table>';
echo "</td>";
if($i==3){
$i=1;
}else{
$i++;
}
}
echo '</tr></table>';
echo "</body>";
echo "</html>";
?>