0

これを説明する方法が正確にはわかりませんが、基本的に、データベース内の行数に等しい x 変数があり、4 以下になるたびにコードを実行します。

5 行あるとします。x が 4 に 1 回等しく、次に 1 に等しいため、コードを 2 回実行したいとします。6 行 (4+2)、7 行 (4+3)、8 行 (4) の場合も同様です。 +4)。

次に、9 行 (4+4+1) に達すると、コードが 3 回実行されます。等...

私が実行しようとしているコードは、HTML の一部であり、その中に PHP がいくつか含まれています。<ul>上記で説明したように、行数が4以下になるたびに、そのコードを内部に含む新しいを作成したいと思います。

現在のコードは次のとおりです。

<div class="row-fluid well">
  <?php
  $num_rows = mysql_num_rows($result);
  if ($num_rows <= 4) {
    ?>
    <ul class="minigames">
    <?php
    while ($row = mysql_fetch_array($result)) {
      echo "<li class='span3'>";
      if (logged_in() === false && !empty($row['app_about']) === true && strlen($row['app_about']) <= 100) {
        echo "<a href='#!' class='thumbnail minigamedesc' title='" . $row['app_name'] . "' data-content='" . $row['app_about'] . "<br /><br /><center><a href=\"./games.php?play_error#library\" class=\"btn btn-info\"><i class=\"icomoon-white icomoon-screen\"></i> Play in browser</a></center>'>";
      } else if (logged_in() === false && !empty($row['app_about']) === true && strlen($row['app_about']) >= 101) {
        $app_about = substr(strip_tags($row['app_about']), 0, 100);
        echo "<a href='#!' class='thumbnail minigamedesc' title='" . $row['app_name'] . "' data-content='" . $app_about . "<a href=\"./games.php?play_error#library\">...</a><br /><br /><center><a href=\"./games.php?play_error#library\" class=\"btn btn-info\"><i class=\"icomoon-white icomoon-screen\"></i> Play in browser</a></center>'>";
      } else if (!empty($row['app_about']) === true && strlen($row['app_about']) <= 100) {
        echo "<a href='#!' class='thumbnail minigamedesc' title='" . $row['app_name'] . "' data-content='" . $row['app_about'] . "<br /><br /><center><a href=\"./play.php?app=" . $row['app_id'] . "\" class=\"btn btn-info\"><i class=\"icomoon-white icomoon-screen\"></i> Play in browser</a></center>'>";
      } else if (!empty($row['app_about']) === true && strlen($row['app_about']) >= 101) {
        $app_about = substr(strip_tags($row['app_about']), 0, 100);
        echo "<a href='#!' class='thumbnail minigamedesc' title='" . $row['app_name'] . "' data-content='" . $app_about . "<a href=\"./play.php?app=" . $row['app_id'] . "\">...</a><br /><br /><center><a href=\"./play.php?app=" . $row['app_id'] . "\" class=\"btn btn-info\"><i class=\"icomoon-white icomoon-screen\"></i> Play in browser</a></center>'>";
      } else {
        echo "<a href='#!' class='thumbnail minigamedesc' title='" . $row['app_name'] . "' data-content='Nothing to see here, yet ! <br /><br /><center><a href=\"./play.php?app=" . $row['app_id'] . "\" class=\"btn btn-info\"><i class=\"icomoon-white icomoon-screen\"></i> Play in browser</a></center>'>";
      }
      ?>
      <img src="<?php echo $row['app_preview']; ?>">
      <div class="minigames-caption">
        <h4><?php echo $row['app_name']; ?></h4>
        <p>By <?php echo $row['app_dev']; ?>.</p>
      </div>
      </a>
      <?php
      echo "</li>";
    }
      ?>
  <?php
  }
  ?>

4

3 に答える 3

2

行数が限られている場合は、結果を 1 つの配列に入れてから、 を使用array_chunk()してそれらを部分に分割します。

$results = array();
while ($row = mysql_fetch_array($result)) {
    $results[] = $row;
}

foreach (array_chunk($results, 4) as $chunk) {
    echo '<ul>';
    foreach ($chunk as $row) {
        echo '<li>', /*....*/, '</li>';
    }
    echo '</ul>';
}
于 2013-01-29T03:06:49.617 に答える
1

x を 4 で割り、切り上げます。例: 4/4 = 1、5/4 = 2、9/4 = 3。次に、for ループを使用します。

var noOfTimes = //x/4 rounded up

for (var i = 0; i < noOfTimes; i++) {
 //insert code here
}
于 2013-01-29T03:10:08.650 に答える
0

機能を使用してくださいceil

http://us3.php.net/manual/en/function.ceil.php

$num_rows = mysql_num_rows($result);
for ($i = 0; $i < ceil($num_rows / 4); $i++) {
    // do stuff
}
于 2013-01-29T03:25:17.977 に答える