2013-12-08 53 views
0

我使用PHP将我的网站上的项目排序到不同的位置/不同的div。我在每个div中都有一个脚本,我希望显示结果。因此,如果有4个div,则有4个脚本。 (4类)每个脚本在我的页面头部都有一个查询。对于类如何使用MySQL/PHP对数据库结果进行排序和显示

MySQL查询/ DIV 1

$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

使3个表:

类别(ID,姓名,...)

项(ID,姓名,...)

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; 

之后,你有连接表,你可以把你想要

+0

编辑任何连接:不知道你在说什么。对此感到抱歉。 。那么,我列出的例子几乎是我在生产中使用的例子,但是,我使用的列数远远超过3列,共有30列。我只是从上面的例子中删除了其余的代码,只包括3个列。你的方法仍然有效吗?而不是我必须制作30张新桌子?我真正需要做的是给项目类别两个值或3个值或4.根据项目。 – user2526699

+0

这是一个有效的方法。从http://en.wikipedia.org/wiki/First_normal_form开始,查看所有常规表格,了解如何制作表格。这是一篇与你的案例完全相同的文章 – smnbbrv

+0

现在我坐在Oracle数据库的前面,有500张桌子:) – smnbbrv

相关问题