我在php,循环等方面没有太多经验,但我从我试图加载的页面复制了这段代码。这是一个汽车经销商的产品页面,我试图将每辆车都放在一张桌子上(我不太了解CSS这样做)我只学了2个月。
使用此代码,我将显示每辆车的次数,因为数据库中的条目与某个类一样。
我已经拿出所有不相关的东西,以便更容易阅读,我希望有人可以帮助我已经在这个项目上工作太久了,并且当我刚刚结束4时我认为我终于得到了它的工作每辆车都在连续。
到目前为止,我已经尝试使用do-while
,其中有一个if语句计算,其中$ i的值仅以$title = [...]
的未定义变量警告为{{1} }}
在数据库中每个条目运行一次循环的最佳方法是什么?
请原谅任何错误,我很累。
Undefined Variable row in...
也尝试了这个:
while ($row = mysqli_fetch_assoc($result))
{
$count = mysqli_num_rows($result);
$title = ("$row[year] "."$row[brand] ". "$row[model]");
$uppic = $row['pic'];
$picloc = "/upload/$uppic";
$price = $row['price'];
$stock = $row['stocknr'];
for ($i = 1;$i <= $count; $i++)
{
if (($i == 1) or (($i - 1) % 4) == 0) {
echo '<table><tr>' . "\n";
}
echo "<td>";
echo "<table>";
echo "<tr>";
echo "<br><a href='$des'>
<span>$title</span></a>";
echo "</tr>";
echo "<tr>";
echo "<a href='$des'>
<img src='$picloc'></a>";
echo "</tr>";
echo "<tr>";
echo "<br><a href=''>
<span>$</span></a>";
echo "</tr></table>";
echo "</td>";
// for 5th, 10th, 15th etc record
if ((($i) % 4) == 0) {
echo '</tr>';
}
}
}
仅在页面加载时出现连接超时。
答案 0 :(得分:0)
使用以下代码:
$count = mysqli_num_rows($result);
$i = 1;
echo "<table>";
while ($row = mysqli_fetch_assoc($result))
{
$title = ("$row[year] "."$row[brand] ". "$row[model]");
$uppic = $row['pic'];
$picloc = "/upload/$uppic";
$price = $row['price'];
$stock = $row['stocknr'];
if($i%4==1) echo "<tr>";
echo "<td>";
echo "<table>";
echo "<tr>";
echo "<br><a href='$des'><span>$title</span></a>";
echo "</tr>";
echo "<tr>";
echo "<a href='$des'><img src='$picloc'></a>";
echo "</tr>";
echo "<tr>";
echo "<br><a href=''><span>$</span></a>";
echo "</tr></table>";
echo "</td>";
if($i%4==0 || $i == $count) echo '</tr>';
$i++;
}
echo "</table>";
答案 1 :(得分:0)
我认为你最好使用CSS而不是在代码中加入这种逻辑。我在下面的片段中做了一个非常简单的例子,我使用DIV来破坏每5个div元素的新行,也许这会给你一些提示。 如果你想分割每5个元素,你应该除以100/5,然后你找到每个div元素20%,但是,我放了1px大小的边框,因此,我将值四舍五入到19%,因为这个额外的宽度,我希望它有所帮助! ps。:我认为有一种更好的方法可以无缝地处理这个边界,没有这种解决方法,我不记得我是如何解决这个问题的......
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
<style type="text/css">
.container {
display: flex;
flex-flow: row wrap;
}
.container>div {
height: 50px;
width: 19%;
border: 1px solid gray;
}
</style>
</head>
<body>
<div class="container">
<div>teste</div>
<div>teste1</div>
<div>teste2</div>
<div>teste3</div>
<div>teste4</div>
<div>teste5</div>
<div>teste6</div>
<div>teste7</div>
<div>teste8</div>
<div>teste9</div>
<div>teste10</div>
<div>teste11</div>
</div>
</body>
</html>