2012-10-24 125 views
0

使用PHP我希望獲取存儲在MySQL中的類別列表,並根據用戶定義的順序對它們進行排序。下面是代碼是如何工作的,現在:如何根據預定義的順序顯示MySQL結果關聯數組?

主文件

<?php 
    $categoryList = getCategoryList(); 
    $categoriesPerRow = 4; 
    $numCategory  = count($categoryList); 
    $columnWidth = (int)(100/$categoriesPerRow); 

if ($numCategory > 0) { 
    $i = 0; 
    $c = 0; 
    for ($i; $i < $numCategory; $i++) { 

        //We skip the dragster category. 
     if($categoryList[$i]['name'] == "Dragsters"){ 
      continue; 
     }else{ 

      if ($c % $categoriesPerRow == 0) { 
       echo '<tr style=\"vertical-align:top;\">'; 
      } 

      // we have $url, $image, $name, $price 
      extract ($categoryList[$i]); 

      echo "<td width=\"$columnWidth%\" align=\"center\" style=\"vertical-align:top;\"><a href=\"$url\"><img src=\"$image\" border=\"0\"><br>$name</a><br></td>\r\n"; 

      if ($c % $categoriesPerRow == $categoriesPerRow - 1) { 
       echo '</tr>'; 
      } 
     } 
     $c++; 

    } 

    if ($i % $categoriesPerRow > 0) { 
     echo '<td colspan="' . ($categoriesPerRow - ($i % $categoriesPerRow)) . '">&nbsp;</td>'; 
    } 
} else { 
?> 
    <tr><td width="100%" align="center" valign="center">No categories yet</td></tr> 
<?php 
} 
?> 

文件方含功能getCategoryList()

function getCategoryList() 
{ 
$sql = "SELECT cat_id, cat_name, cat_image 
     FROM tbl_category 
     WHERE cat_parent_id = 0 
     ORDER BY cat_name"; 
$result = dbQuery($sql); 

$cat = array(); 
while ($row = dbFetchAssoc($result)) { 
    extract($row); 

    if ($cat_image) { 
     $cat_image = WEB_ROOT . 'images/category/' . $cat_image; 
    } else { 
     $cat_image = WEB_ROOT . 'images/no-image-small.png'; 
    } 

    $cat[] = array('url' => $_SERVER['PHP_SELF'] . '?c=' . $cat_id, 
        'image' => $cat_image, 
        'name' => $cat_name); 

} 

return $cat;    
} 

我也考慮過做一個jQuery界面,用戶可以拖動然後&安排保存類別應顯示的順序。我認爲數據庫中的信息可能是每個類別都有一個存儲訂單號的字段。然後可以使用此訂單號來訂購類別。用PHP實現這一點最有效的方法是什麼?

+0

對於'cat_id',jQuery和'seq_no'一起聽起來不錯;僅適用於單個用戶。祝你好運。 – SparKot

回答

0

傻傻的我把它弄出來了。

SELECT cat_id, cat_name, cat_image 
    FROM tbl_category 
    WHERE cat_parent_id = 0 
    ORDER BY cat_order 

cat_order是一個數字,表示其順序的位置。 jquery設計將允許用戶訂購它。

相關問題