1

私は私的な目的で映画データベースを作成しています。データベースの一部として、ジャンルごとに並べ替えたり、映画の最初の文字を表示したり、すべてを表示したりして、映画を表示できるようにしたいと考えています。

データベース テーブルのすべての行が印刷されるまで、ヒットを 3 列のテーブルに表示したいと考えています。

例えば:

Ice age 1     Ice age 2     Ice age 3

Die Hard 1    Die Hard 2    Die hard 3

以下のコード (すべてのムービーを表示する必要がある場合に使用) で何が起こるかは、50 行であることを知っていても、39 行後に停止し、mysql_num_rows() は 50 を返し、完全な db テーブルを 1 列に印刷したときに、私は50行になりました。

$counterone = 0;
  $countertwo = 0;
  if ($_movietype == 'showmeeverything')
  {
    $movieresult = mysql_query("SELECT url,title FROM movies ORDER BY title");
    if(mysql_num_rows($movieresult) == 0)
    {
        nomovie();
    }

    echo '<p align="center"><a href="index.php">Go back</a></p>';
    echo '<table border="1" cellspacing="2" cellpadding=2" align="center">';
    echo '<tr><td colspan="3" align="center"><b>Title</b></td></tr>';

    echo mysql_num_rows($movieresult);
    while ($counterone < mysql_num_rows($movieresult))
    {
        $counterone++;
        echo '<tr>';
        while (($result = mysql_fetch_array($movieresult)) && $countertwo < 3)
        {
            echo '<td>';
            echo '<a href="'.$result['url'].'">' . $result['title'] . '</a>';
            echo '</td>';
            $countertwo++;
        }
    echo '</tr>';
    $countertwo = 0;
    }
    echo '</table>';
    echo '<p align="center"><a align="center" href="index.php">Go back</a></p>';
  }
4

2 に答える 2

1

あなたは$counterone正しい場所で増加していません。テーブルROWSをカウントしていますが、レコード数を処理しています。$counteroneは内部while($result)ループ内にある必要があります。そして、そこに到達すると、$countertwoは冗長になります。

代わりにこれを試してください:

$counter = 0;
while($row = mysql_fetch_array($movieresult)) {
   if ($counter % 3 == 0)
       echo '<tr>';
   }
   echo "<td> blah blah blah </td>";
   if ($counter % 3 == 2) {
       echo '</tr>';
   }
   $counter++;
}
于 2013-01-17T18:26:02.487 に答える
0

これを試して:

$counterone = 0;
$countertwo = 0;
if ($_movietype == 'showmeeverything')
 {
 $movieresult = mysql_query("SELECT url,title FROM movies ORDER BY title");
 if(mysql_num_rows($movieresult) == 0)
{
    nomovie();
}

echo '<p align="center"><a href="index.php">Go back</a></p>';
echo '<table border="1" cellspacing="2" cellpadding=2" align="center">';
echo '<tr><td colspan="3" align="center"><b>Title</b></td></tr>';

echo mysql_num_rows($movieresult);
$numrows =  mysql_num_rows($movieresult);
while ($counterone < $numrows)
{
    $counterone++;
    echo '<tr>';
    while (($result = mysql_fetch_array($movieresult)) && $countertwo < 3)
    {
        echo '<td>';
        echo '<a href="'.$result['url'].'">' . $result['title'] . '</a>';
        echo '</td>';
        $countertwo++;
    }
echo '</tr>';
$countertwo = 0;
}
echo '</table>';
echo '<p align="center"><a align="center" href="index.php">Go back</a></p>';

}

于 2013-01-17T18:24:53.347 に答える