[英]How to display fetched results into 2 different group of divs from one inner-join-where query?
我在將結果顯示到不同的div時遇到麻煩。
我有這個html代碼:
<div class="grid_10 alpha omega">
<div class="grid_5 alpha paddingtop10">
<div class="grid_5" id="titlescontent"><p class="titlebar">Subcat 1</p></div>
<div class="clear"></div>
<div class="grid_5" id="content"><p>Subsubcategories 1</p></div>
<div class="clear"></div>
</div>
<div class="grid_5 omega paddingtop10">
<div class="grid_5" id="titlescontent"><p class="titlebar">Subcat 2</p></div>
<div class="clear"></div>
<div class="grid_5" id="content"><p>Subsubcategories 2</p></div>
<div class="clear"></div>
</div>
<div class="grid_5 alpha paddingtop10">
<div class="grid_5" id="titlescontent"><p class="titlebar">Subcat 3</p></div>
<div class="clear"></div>
<div class="grid_5" id="content"><p>Subsubcategories 3</p></div>
<div class="clear"></div>
</div>
<div class="grid_5 omega paddingtop10">
<div class="grid_5" id="titlescontent"><p class="titlebar">Subcat 4</p></div>
<div class="clear"></div>
<div class="grid_5" id="content"><p>Subsubcategories 4</p></div>
<div class="clear"></div>
</div>
etc ...
</div>
<div class="clear"></div>
我正在使用960grid系統,alpha類清除了左側的5px填充,而omega清除了右側的5px填充。 除paddingtop10外,其他類別僅用於顏色。
這是我試圖實現到我的html中的我的php代碼結構:
if ($stmt = mysqli_prepare($connect, "SELECT subcategories.subcat_name, subsubcategories.subsubcat_name, subcategories.subcat_ID FROM subcategories INNER JOIN subsubcategories ON subcategories.subcat_ID=subsubcategories.subcat_ID WHERE subcategories.cat_ID = ? OR subcategories.extra_cat_ID = ? ORDER BY subcategories.subcat_name, subsubcategories.subsubcat_name ASC")){
mysqli_stmt_bind_param($stmt, "ii", $cat_ID, $cat_ID);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $subcat_name, $subsubcat_name, $subcat_ID);
$lastcat = 0;
while (mysqli_stmt_fetch($stmt)){
if($lastcat != $subcat_ID){
$lastcat = $subcat_ID;
echo "<br>";
echo $subcat_name;
echo "<br>";
echo "<br>";
}
echo $subsubcat_name;
echo "<br>";
}
}
我想通過php生成alpha和omega div,但是我不確定如何執行此操作。 我試過了這段代碼,但是卻沒有給我正確的結果,就像我想要在html示例代碼中顯示的那樣:
if ($stmt = mysqli_prepare($connect, "SELECT subcategories.subcat_name, subsubcategories.subsubcat_name, subcategories.subcat_ID FROM subcategories INNER JOIN subsubcategories ON subcategories.subcat_ID=subsubcategories.subcat_ID WHERE subcategories.cat_ID = ? OR subcategories.extra_cat_ID = ? ORDER BY subcategories.subcat_name, subsubcategories.subsubcat_name ASC")){
mysqli_stmt_bind_param($stmt, "ii", $cat_ID, $cat_ID);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $subcat_name, $subsubcat_name, $subcat_ID);
$lastsubcat = 0;
while (mysqli_stmt_fetch($stmt)){
echo '<div class="grid_5 alpha paddingtop10">';
echo '<div class="grid_5" id="titlescontent"><p class="titlebar">';
if($lastsubcat != $subcat_ID){
$lastsubcat = $subcat_ID;
echo $subcat_name;
}
echo '</p></div>';
echo '<div class="clear"></div>';
echo '<div class="grid_5" id="content"><p>';
echo $subsubcat_name;
echo '</p></div>';
echo '<div class="clear"></div>';
echo '</div>';
echo '<div class="grid_5 omega paddingtop10">';
echo '<div class="grid_5" id="titlescontent"><p class="titlebar">';
if($lastsubcat != $subcat_ID){
$lastsubcat = $subcat_ID;
echo $subcat_name;
}
echo '</p></div>';
echo '<div class="clear"></div>';
echo '<div class="grid_5" id="content"><p>';
echo $subsubcat_name;
echo '</p></div>';
echo '<div class="clear"></div>';
echo '</div>';
}
}
知道我需要如何進行這項工作嗎?
感謝您的任何幫助!
我唯一想到的就是使用計數器來跟蹤您是第一次迭代還是最后一次迭代。 即使循環只有一個項目,這也將起作用。
$values = mysqli_stmt_fetch($stmt);
$i = 0;
$len = count($values);
while ($values) {
$i++;
...
if ($i == 1) {
// add alpha class
}
...
if ($i == $len) {
// add omega class
}
}
這對您有什么啟發嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.