映画を読み込んで公開日の差を計算するインタラクティブなタイムラインを構築しているため、映画の公開がない「日」を表示してタイムライン効果を作成しています。ただし、同じ日に公開される映画がいくつかあります。これらの映画の日付を何度も繰り返すのではなく、グループ効果のように最初の映画の日付を表示するだけです。
if
テーブルをループして、日付が前の行の日付と同じかどうかをチェックするステートメントを操作しました。
http://ignitethatdesign.com/CheckFilm/test_search.php
しかし、PHP を使用して、同じ日付の映画のグループの最初の映画の日付のみを表示するにはどうすればよいでしょうか?
複雑なループ システムを使用しています。完全なコードは次のとおりです。
<?php
$last_value = null;
echo "<div class=\"timeline\">";
$pNumber = 0;
while ($row = mysql_fetch_assoc($sql)) {
if (!is_null($last_value)) {
$pNumber++;
$a = new DateTime($row['FilmRelease']);
$film_date = $row['FilmRelease'];
$film_name = urldecode($row['FilmName']);
$film_desc = urldecode($row['Synopsis']);
echo "<div id=\"t".$pNumber."\"><p class=\"everyday\">".$film_name."</div>";
if (empty($film_desc)) {
echo "<div id=\"b".$pNumber."\" style=\"font-size:12px;\">No film information for ".$film_name."</div>";
}
else
{
echo "<div id=\"b".$pNumber."\" style=\"font-size:12px;\">".$film_desc."</div>";
}
?> <script type="text/javascript">
$("#b<?php echo $pNumber ?>").hide();
$("#t<?php echo $pNumber ?>").click(function() {
$("#b<?php echo $pNumber ?>").fadeToggle("slow");
});
</script>
<?php
$interval = $a->diff(new DateTime($last_value));
//echo $interval->format('%d days');
$b = new DateTime($last_value);
$i = 0;
}
if ($b == $a)
{
echo "same date as above";
} else
{
echo "This date is different";
}
$howManydays = $interval->days;
for ( $i; $i < $howManydays; $i++) {
echo "<p class=\"day\"></p>";
}
$last_value = $row['FilmRelease'];
}
echo "<div id=\"end\"></end>";
echo "</div>";
?>
どんな助けでも大歓迎です:)