如何使用MySQL / PHP对数据库结果进行排序和显示

时间:2013-12-08 19:08:28

标签: php mysql database

我使用PHP将我网站上的项目分类到不同的位置/不同的div。我在每个div中都有一个脚本,我想要显示结果所以如果有4个div,则有4个脚本。 (4个类别)每个脚本在页面的头部都有一个查询。

类别/ div 1的MySQL查询

$sql_category1 = <<<SQL
  SELECT *
  FROM `list_items`
  WHERE `category` = 1 
  ORDER BY `rating` ASC;
SQL;

if(!$category1 = $db->query($sql_category1 )){
    die('There was an error running the query [' . $db->error . ']');
}

我的PHP类别/ div 1:

<?php 
    while($row = $category1->fetch_assoc()) {

    '<div class="list-item-container">'
    . '<a href="' . $row['url'] . '"><img title="' . $row['title'] . '" class="favicon" src="http://www.google.com/s2/favicons?domain='. $row['fav_url'] . '" /></a>'
    . '</div>';

}
?>

我的目标:当我将数据输入表格时,有两个项目可以归类为两个不同的东西,所以两个不同的类别,我必须制作两个副本。这样,项目将出现在两个类别中。相同的项目有两个不同的类我给其中一个项目的类别值为1,另一个项目的类别值为2.

有没有一种方法可以为该项目提供两个单独的类别值?这样,当我的脚本运行并对它们进行排序时,该项目将出现在两个类别中。

我尝试了1,2 1:2和1; 2作为项目的值。我相信它甚至不接近那个。

提前致谢!

1 个答案:

答案 0 :(得分:1)

制作3张桌子:

类别(id,name,...)

item(id,name,...)

item_category(id_item,id_category)

他们会在您的查询中加入它们,例如您的第一个查询将成为

SELECT *
FROM `list_items` t,`item-category`
WHERE `id_category` = 1
  and `id_item` = t.`id`
ORDER BY `rating` ASC;

在你有连接表后,你可以输入你想要的任何连接