格式化PHP/HTML中的MySQL查询
问题描述:
这是我迄今为止的输出代码。正如预期的那样,它目前显示彼此之下的所有内容。格式化PHP/HTML中的MySQL查询
<table id="dslrTable">
<?php
while($row = mysqli_fetch_assoc($result)) { ?>
<?php echo "<tr><td> <a href=model.php?id=" . $row["ID"] . ">" . "<img src=images/" . $row["Image URL"] . " </a></td></tr>"; ?>
<?php echo "<tr><td> <a href=model.php?id=" . $row["ID"] . ">" . $row["Make"] . " " . $row["Model"] . " </a></td><tr>"; ?>
<?php echo "<tr><td> <a href=#.php>[add to compare] </a> </td></tr>"; ?>
<?php } ?>
</table>
我想实现的是在数据库中每行三个tr。图片,制作/模型,然后是超链接。 4“结果”后,然后做一个新的tr。像这样的东西。
<table>
<tr>
<td>Image 1</td>
<td>Image 2</td>
<td>Image 3</td>
<td>Image 4</td>
</tr>
<tr>
<td>Make and Model 1</td>
<td>Make and Model 2</td>
<td>Make and Model 3</td>
<td>Make and Model 4</td>
</tr>
<tr>
<td>Hyperlink 1</td>
<td>Hyperlink 2</td>
<td>Hyperlink 3</td>
<td>Hyperlink 4</td>
</tr>
<tr>
<td>Image 5</td>
<td>Image 6</td>
<td>Image 7</td>
<td>Image 8</td>
</tr>
<tr>
<td>Make and Model 5</td>
<td>Make and Model 6</td>
<td>Make and Model 7</td>
<td>Make and Model 8</td>
</tr>
<tr>
<td>Hyperlink 5</td>
<td>Hyperlink 6</td>
<td>Hyperlink 7</td>
<td>Hyperlink 8</td>
</tr>
</table>
并为此继续下去,直到我的while循环停止。我知道我需要使用模块除了计数器变量,但我不能让它工作。
任何帮助表示赞赏,谢谢。
答
<?php
$i=0;
while($row = mysqli_fetch_assoc($result)) {
$image[$i] = $row["Image URL"];
$model[$i] = $row["Model"];
$hyper_link[$i] = $row["Hyperlink"];
$i++;
}
?>
<table border="1">
<?php
$k=0;
$l=1;
$m=2;
$n=3;
for($j=0;$j<count($image)/4;$j++){
echo "<tr>";
echo " <td> {$image[$k]}</td>";
echo " <td> $image[$l]</td>";
echo " <td> $image[$m]</td>";
echo " <td> $image[$n]</td>";
echo "</tr>";
echo "<tr>";
echo " <td> $model[$k] </td>";
echo " <td> $model[$l]</td>";
echo " <td> $model[$m]</td>";
echo " <td> $model[$n]</td>";
echo "</tr>";
echo "<tr>";
echo " <td> $hyper_link[$k] </td>";
echo " <td> $hyper_link[$l]</td>";
echo " <td> $hyper_link[$m]</td>";
echo " <td> $hyper_link[$n]</td>";
echo "</tr>";
$k +=4;
$l +=4;
$m +=4;
$n +=4;
}
?>
</table>
答
我很确定这不是功能mysqli_fetch_assoc()
的适当使用。你真的应该将结果存储在一个数组变量中,对结果进行计数,并通过for循环传递它们。
$row = mysqli_fetch_assoc($result);
$result_count = count($row);
for($i = 0; $i <= $result_count; $i++){
}
尽管此代码可以回答这个问题,提供有关为什么和/或如何代码回答了这个问题提高了其长期价值的其他方面。 –