-1

データベースから画像を選択して月ごとにグループ化して表示するコードを作成しました。「毎月の写真」をそれぞれの「コンテナ」部門に入れてほしい。WHILE LOOPにいる間、これを行う方法がわかりません。繰り返される次のデータ行が新しい月であるかどうかを判断する方法が必要だと思います。助言がありますか?

私のコード:

<?php

if (isset($_COOKIE['user_id']))
{
if (!isset($_GET['user_id']))
{
$user_id= $_COOKIE['user_id'];
}
else
{
$user_id= $_GET['user_id'];
}

$connect= mysqli_connect("localhost", "root", "", "si");
$query= "SELECT * FROM posts WHERE user_id= $user_id ORDER BY date DESC";

$result= mysqli_query($connect, $query)
or die('error with query');
$date = "0";

while ($row= mysqli_fetch_array($result)) {

if ($date != $row['date']) {
 echo "<p> ".$row['date']."</p><br/>";
 $date = $row['date'];
}

echo '<img src="'.$row['picture']. '"/>' . "<br/>";
}
}
?>

これがどのように見えるべきかです...

ここに画像の説明を入力してください

たとえば、2012年2月の月は2012年1月とは異なるコンテナdivにある必要があります。

4

4 に答える 4

1

月ヘッダーを作成するのと同じ場所にこれを実装するのは非常に簡単です。

$first = true;
if ($date != $row['date']) {
    if ($first) {
        $first = false;
    } else {
        echo "<\div>";
    }
    echo "<div><p> ".$row['date']."</p><br/>";
    $date = $row['date'];
}

次に、次のように呼び出して、while ループの後に最後の div を閉じる必要があります。

echo "</div>";
于 2012-04-15T17:03:01.277 に答える
0

次のようなものを試してください。

<?php
for($i =1; $i <= 12; $i++)
{
 $result = mysql_fetch_array(mysql_query("SELECT * FROM `posts` WHERE `user_id` = '" . $user_id . "' AND `month` = '" . $i . "'"));
 if(count($result))
    {
      // create the container and the images for the current month here
    }
}
?>
于 2012-04-15T17:09:08.610 に答える
0

新しいコンテナが開かれているかどうかを確認するには、次のようなことを試します。

<?php

if (isset($_COOKIE['user_id']))
{
if (!isset($_GET['user_id']))
{
$user_id= $_COOKIE['user_id'];
}
else
{
$user_id= $_GET['user_id'];
}

$connect= mysqli_connect("localhost", "root", "", "si");
$query= "SELECT * FROM posts WHERE user_id= $user_id ORDER BY date DESC";

$result= mysqli_query($connect, $query)
or die('error with query');
$date = "0";

$firstmonth = true; //used to tell if a div has been opened yet or not

while ($row= mysqli_fetch_array($result)) {

if ($date != $row['date']) {
 if(!$firstmonth){ //close existing row first if needed
    echo "</div>";
    $firstmonth = false;
 }
 echo "<div class="month-container"><p> ".$row['date']."</p><br/>";
 $date = $row['date'];
}

echo '<img src="'.$row['picture']. '"/>' . "<br/>";
}
}
?>
于 2012-04-15T17:00:41.793 に答える
0
<?php

if (isset($_COOKIE['user_id']))
{
if (!isset($_GET['user_id']))
{
$user_id= $_COOKIE['user_id'];
}
else
{
$user_id= $_GET['user_id'];
}

$connect= mysqli_connect("localhost", "root", "", "si");
$query= "SELECT * FROM posts WHERE user_id= $user_id ORDER BY date DESC";

$result= mysqli_query($connect, $query)
or die('error with query');

$date = "0";
$it= 0;

while ($row= mysqli_fetch_array($result)) {

if ($date != $row['date']) {
if ($it < 1) {
echo "<div class='container'><p> ".$row['date']."</p><br/>";
 $date = $row['date'];
 $it ++;
    }
else {
 echo "</div><div class='container'><p> ".$row['date']."</p><br/>";
 $date = $row['date'];
 $it ++;
 }

}

echo '<img src="'.$row['picture']. '"/>' . "<br/>";
}
}

?>

于 2012-04-15T17:01:59.323 に答える