2012-04-15 20 views
-1

データベースから画像を選択して表示するコードを月ごとにグループ化しました。私は毎月の「写真の月」を自分の「コンテナ」部門に入れたいと思っています。私は、まあまあでこれを行う方法を理解することはできません。私は、データの次の行が繰り返されるかどうかを知る方法が必要だと思います。新しい月かどうかはわかりません。助言がありますか?whileループ中に新しいdivを作成する

マイコード:

<?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/>"; 
} 
} 
?> 
ここ

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

enter image description here

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

答えて

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>"; 
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/>"; 
} 
} 
?> 
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/>"; 
} 
} 

?>

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 
    } 
} 
?> 
+0

あなたは12ヶ月以上持つことができ、あなたのように数年からの写真を表示することができます。 – Laky

関連する問題