首页 > 解决方案 > 每个数据库条目的php单次使用循环

问题描述

我在 php、循环等方面没有太多经验,但我从我试图加载的页面复制了这段代码。这是汽车经销商的产品页面,我试图在表格中显示每辆车(我不知道足够的 CSS 来做到这一点)我只学习了 2 个月。

使用此代码,我可以让每辆车显示的次数与数据库中具有特定类别的条目一样多。

我已经删除了所有不相关的东西以使其更易于阅读,我希望有人可以帮助我在这个项目上工作太久了,当我最终每辆车有 4 辆时,我以为我终于可以让它工作了连续。

到目前为止,我已经尝试使用do-whilewhere do 对 $i 的值进行 if 语句计算,最终结果是未定义的变量警告为$title = [...]asUndefined 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>';
        }
    }
}

也试过这个:

for ($i = 0;$i <= $count; $i++)
{
    $query = "SELECT year, brand, model, class, stocknr, price, status, pic 
    FROM stock WHERE class = 'car' ORDER BY brand ASC";

    $result = mysqli_query($con,$query);
    $row = mysqli_fetch_assoc($result);
    $count=mysqli_num_rows($result);
    do {
        $title = ("$row[year] "."$row[brand] ". "$row[model]");
        $uppic = $row['pic'];
        $picloc = "/upload/$uppic";
        $price = $row['price'];
        $stock = $row['stocknr'];
        if (($i == 1) or (($i - 1) % 4) == 0) {
            echo '<table><tr>' . "\n";
        }
        echo "<td>";
        echo "<table>";
        echo "<tr>";
        echo "<br><a href='d.php?stocknr=$stock'>
          <span>$title</span></a>";
        echo "</tr>";
        echo "<tr>";
        echo "<a href='d.php?stocknr=$stock'>
      <img src='$picloc'></a>";
        echo "</tr>";
        echo "<tr >";
        echo "<br><a href='d.php?stocknr=$stock'>
  <span>R$p</span></a>";
        echo "</tr></table>";
        echo "</td>";

        // for 5th, 10th, 15th etc record
        if ((($i) % 4) == 0) {
            echo '</tr>';
        }
        while ($i <= $count); 
    }

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

标签: phploopsproduct

解决方案


使用以下代码:

$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>";

推荐阅读