我将包含我的整个“shopping.php”页面代码,以便您知道我来自哪里。
<!DOCTYPE html>
<html>
<head><title>Shopping Page</title>
<style type="text/css">
</style>
<script type="text/javascript">
</script>
</head>
<body>
<form name="form1">
<?php
if (isset($_GET['cat'])) $cat=$_GET['cat'];
else $cat = "fx";
echo $cat;
//1. Make a connection to the database
$dbconn = mysqli_connect("localhost","root","","mydatabase1")
or die(mysqli_connect_error());
$sql = "select productid,name,imagefile "
."from products "
."where categoryid='$cat'";
echo $sql;
//2. Run a query against the database
$result = mysqli_query($dbconn,$sql)
or die(mysqli_error($dbconn));
...这就是我希望将结果作为3列表返回的部分:
//3. Return the results
while ($row = mysqli_fetch_row($result))
{
echo "<a href='order.php?prod=$row[0]'>$row[1]</a><br>";
echo "<img src='images/products/$row[2]' "
."height=200px width =175px><br>";
}
//4. Release the resources
mysqli_free_result($result);
//5. Close the connection
mysqli_close($dbconn);
?>
</form>
</body>
</html>
现在我得到了结果,但它只是垂直列出。我尝试了几种不同的方式,但我猜我的小便是最好的。任何帮助将不胜感激。感谢。
答案 0 :(得分:0)
我看到的只是一个双列表,但你应该制作一个HTML
表。 (<br>
标签使其垂直)
$count = 0;
echo "<table><tr><th>Name</th><th>Image</th></tr>";
while ($row = mysqli_fetch_row($result))
{
if($count % 3 == 0){
echo "<tr>"; //every third image make a new row
}
echo "<td><a href='order.php?prod=$row[0]'>$row[1]</a>";
echo "<img src='images/products/$row[2]' "
."height=200px width =175px></td>";
if($count % 3 == 2){
echo "</tr>"; //every third image end the row
}
$count++;
}
echo "</table>";
同时强>
如果您使用mysqli
或使用PDO,请参阅此参考,因为您应该绑定参数。 How can I prevent SQL injection in PHP?
回复您的评论
添加了一个计数,该计数在每个第三个图像中添加表格行标记。 %
是模数运算符,它为你提供除法余数。
答案 1 :(得分:0)
你可以通过多种方式实现这一目标。根据我的说法,使用表是更好的解决方案。但是如果你想要最简单的方法,那就是使用div。使用answered in your other question制作列。使用以下样式:
<style>
.column3 {
-webkit-column-count: 3; /* Chrome, Safari, Opera */
-moz-column-count: 3; /* Firefox */
column-count: 3;
}
</style>
并使用此div
<div class="column3">
//Your Result
</div>