每个数据库条目的php单一使用循环

时间:2018-05-14 23:33:18

标签: php loops product

我在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>';
        }
    }
}

仅在页面加载时出现连接超时。

2 个答案:

答案 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>