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

标签 php mysql database

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

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 . ']');
}

我的类别/div 1 的 PHP:

<?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 作为该项目的值。但我确信它还远没有达到这个水平。

提前致谢!

最佳答案

制作 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;

有了连接表后,您可以在其中放入任何您想要的连接

关于php - 如何使用 MySQL/PHP 对数据库结果进行排序和显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20457668/

相关文章:

MySql - innodb - 复合键上的行级锁定如何用简单的话工作

sql - 将sqlite数据库转换为sdf文件

php - 如何在 laravel 的查询生成器中使用命名绑定(bind)?

php - 如何编写此 mySQL 查询以在每一列中显示多个数据?

php - 返回 php 文件中图像的内容?

python - ScrapingHub:没有名为 Mysql.connector 的模块

database - GoLang Multi-Tenancy 应用程序数据库连接

mysql - 使用 join 和 group by 进行复杂的选择查询

php - PubNub 服务器未正确格式化消息

php - 为什么 CREATE TABLE IF NOT EXISTS 总是返回 false?