我試圖從數據庫返回結果並輸出到HTML。 如果feature = 1,那麼我希望顯示與產品關聯的圖像。在此之下,我還希望顯示所有結果的標題,而不考慮特徵的值。這也全部按變量$group_date
中的release_date分組。通過MySQL循環選擇數據與PHP如果語句
我在底部提供的代碼允許我檢索像這樣的數據(我認爲這是循環下一行並輸出到下一個之前,但我不知道什麼解決方案是):
group_date
----- ----- -----
|img| |img| |img|
title ----- title ----- title ----- title
group_date 2
----- ----- -----
|img| |img| |img|
title ----- title ----- title ----- title title
我想結果要顯示這樣
group_date
----- ----- -----
|img| |img| |img|
----- ----- -----
title 1
title 2
title 3
title 4
group_date 2
----- ----- -----
|img| |img| |img|
----- ----- -----
title 1
title 2
title 3
title 4
title 5
....
這裏是代碼我現在有
<?php
$dsn = "mysql:host=localhost;dbname=dbname;charset=utf8";
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_GROUP
);
$db = new PDO($dsn,"user", "pass", $opt);
$stmt = $db->query("SELECT * FROM products ORDER BY release_date ASC, rating DESC");
$group_date = "";
?>
<body>
<div class="container">
<div>
<div>
<div id="contentWrapper">
<?php
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
if ($group_date !== substr($row["release_date"], 0, 10)) {
$group_date = substr($row["release_date"], 0, 10);
?>
<?=$group_date;?>
<div>
<?php }
$feature= $row['feature'];
if($feature=='1')
{?>
<a href="<?=$row['product_url']?>" title="<?=$row['title']?>">
<img src="<?=$row['img_url']?>" width='180' height='267' alt="<?=$row['title']?>"/>
</a>
<?php } ?>
<?=$row['title']?> <br>
<?php } ?>
</div>
</div>
</div>
</div>
</div>
嘗試你的代碼後,它似乎幾乎是我想要的。我遇到了兩個問題:它爲沒有圖像的所有結果添加換行符。在最後一組分組結果中的圖像之後,標題似乎缺失。 – mrbiscuits
我已通過從<?php $ title = $ title刪除'
'來解決圖像之間的換行符問題。 「
」。 $行[ '標題']; // ADDED ?>
'。我認爲最後的結果缺失了,因爲標題已鏈接到下一個組日期,但是當它到達結尾時沒有另一個組日期,因此標題未打印。你知道如何解決這個問題嗎? – mrbiscuits
只需在while循環關閉後放置此行 - echo $ title;這將打印結束時標題字符串中剩下的任何內容。讓我知道它是否有效。 –