PHP 显示行和 div 重复的文章

PHP show articles in row's and div's repeating

我正在尝试使用 bootstrap 4 alpha 和 PHP.

创建一些 div 应该是网店中的一些文章

我想我需要取模 (%) 但我无法实现我想要的,我已经阅读 this 并尝试使用它但我无法得到它工作,因为我真的不明白它的作用。

我需要的是 1 行,4 列,并且这样重复。我希望你明白我要去哪里。

这里是 HTML 示例,可以有更多行和 div,如您在其下方的 PHP 中所见:

<div class="row">
  <div class="sm-col-3">
    <div class="card-deck-wrapper">
      <div class="card-deck">
        <div class="card card-outline-secondary">
          <img class="card-img-top m-x-auto d-block placeholder" src="empty.png" alt="Product">
          <div class="card-block">
            <h4 class="card-title">Product</h4>
            <p class="card-text">
              <span>Omschrijving van het product. </span><br>
              <span>&euro; 1,00</span><br>
              <span>Voorraad: 1</span>
            </p>
            <a href="#" class="btn btn-primary">Koop</a>
          </div>
        </div>
        <div class="card card-outline-secondary">
          <img class="card-img-top m-x-auto d-block placeholder" src="empty.png" alt="Product">
          <div class="card-block">
            <h4 class="card-title">Product</h4>
            <p class="card-text">
              <span>Ik zal hier ook maar wat in knallen zodat niet alle kaarten even groot zijn.</span><br>
              <span>&euro; 1,00</span><br>
              <span>Voorraad: 1</span>
            </p>
            <a href="#" class="btn btn-primary">Koop</a>
          </div>
        </div>
        <div class="card card-outline-secondary">
          <img class="card-img-top m-x-auto d-block placeholder" src="empty.png" alt="Product">
          <div class="card-block">
            <h4 class="card-title">Product</h4>
            <p class="card-text">
              <span>Deze kaart zal ook net even iets groter zijn om het uit te testen want ik snap er geen reet van.</span><br>
              <span>&euro; 1,00</span><br>
              <span>Voorraad: 1</span>
            </p>
            <a href="#" class="btn btn-primary">Koop</a>
          </div>
        </div>
        <div class="card card-outline-secondary">
          <img class="card-img-top m-x-auto d-block placeholder" src="empty.png" alt="Product">
          <div class="card-block">
            <h4 class="card-title">Product</h4>
            <p class="card-text">
              <span>Omschrijving van het product.</span><br>
              <span>&euro; 1,00</span><br>
              <span>Voorraad: 1</span>
            </p>
            <a href="#" class="btn btn-primary">Koop</a>
          </div>
        </div>
      </div>
    </div>
  </div>
</div>
<div class="row">
  <div class="sm-col-3">
    <div class="card-deck-wrapper">
      <div class="card-deck">
        <div class="card card-outline-secondary">
          <img class="card-img-top m-x-auto d-block placeholder" src="empty.png" alt="Product">
          <div class="card-block">
            <h4 class="card-title">Product</h4>
            <p class="card-text">
              <span>Omschrijving van het product.</span><br>
              <span>&euro; 1,00</span><br>
              <span>Voorraad: 1</span>
            </p>
            <a href="#" class="btn btn-primary">Koop</a>
          </div>
        </div>
        <div class="card card-outline-secondary">
          <img class="card-img-top m-x-auto d-block placeholder" src="empty.png" alt="Product">
          <div class="card-block">
            <h4 class="card-title">Product</h4>
            <p class="card-text">
              <span>Omschrijving van het product.</span><br>
              <span>&euro; 1,00</span><br>
              <span>Voorraad: 1</span>
            </p>
            <a href="#" class="btn btn-primary">Koop</a>
          </div>
        </div>
      </div>
    </div>
  </div>

PHP我现在拥有的:

$categorie = mysqli_real_escape_string($mysqli, $_GET['categorie']);
$sql = "SELECT * FROM producten WHERE categorie = '$categorie' AND voorraad > 0";
$result = mysqli_query($mysqli, $sql) or die(mysqli_error($mysqli));
if (mysqli_num_rows($result) == 0) {
    echo "<div class=\"card card-inverse card-warning text-xs-center\">\n";
    echo "  <div class=\"card-block\">\n";
    echo "      <blockquote class=\"card-blockquote\">\n";
    echo "          <span>Deze categorie bestaat niet!</span>\n";
    echo "      </blockquote>\n";
    echo "  </div>\n";
    echo "</div>\n";
}
else {
    echo "<h3>Categorie: " . ucfirst($_GET['categorie']) . "</h3>\n";

    $i = 0;
    while ($row = mysqli_fetch_array($result)) {
        if ($i % 3 == 0) {
            echo "<div class=\"row\">\n";
            echo "  <div class=\"sm-col-3\">\n";
            echo "      <div class=\"card-deck-wrapper\">\n";
            echo "          <div class=\"card-deck\">\n";
        }
        echo "              <div class=\"card card-outline-secondary\">\n";
        if ($row['plaatje'] == "") {
            echo "                 <img class=\"card-img-top m-x-auto d-block placeholder\" src=\"empty.png\" alt=\"". $row['naam'] . "\">\n";
        }
        else {
            echo "                <img class=\"card-img-top m-x-auto d-block placeholder\" src=\"" . $row['plaatje'] . "\" alt=\"". $row['naam'] . "\">\n";
        }
        echo "                <div class=\"card-block\">\n";
        echo "                    <h4 class=\"card-title\">" . $row['naam'] . "</h4>\n";
        echo "                    <p class=\"card-text\">\n";
        echo "                        <span>" . nl2br($row['omschrijving']) . "</span><br>\n";
        echo "                        <span>&euro; " . str_replace(".", ",", number_format($row['prijs'], 2)) . "</span><br>\n";
        echo "                        <span>Voorraad: " . $row['voorraad'] . "</span><br>\n";
        echo "                    </p>";
        echo "                    <a href=\"winkelwagen.php?actie=voegtoe&id=" . $row['productnr'] . "\" class=\"btn btn-primary\">Koop</a>\n";
        echo "                </div>\n";
        echo "            </div>\n";
        if ($i % 3 == 2) {
            echo "          </div>\n";
            echo "      </div>\n";
            echo "  </div>\n";
            echo "</div>\n";
        }
        if ($i % 3 != 0) {
            echo "          </div>\n";
            echo "      </div>\n";
            echo "  </div>\n";
            echo "</div>\n";
        }
        $i++; 
    }

这可能是一个简单的解决方案,但我看不到!

感谢您的宝贵时间。

根据你问题中的link,这对我有用:

$i = 0;
while ($row = mysqli_fetch_array($result)) {
    if ($i % 3 == 0){
        echo '<div class="row">';
    }

    echo '<div class="col-lg-4 col-md-4 col-sm-4">'; 
        //Your column data here
    echo '</div>';

    if ($i % 3 == 2){
        //Close the .row div
        echo '</div>';
    }
    $i++; 
}

if ($i % 3 != 0){
    //Close the .row div in case there aren't enough items left to fill up to 3
    echo '</div>';
}

http://www.devchunks.com/web-development/using-the-php-modulus-operator/