我很抱歉,今天我的第二篇文章很糟糕,但我还需要一点帮助。 我在mysql DB中有一个表,其中包含一些产品(id,name,description,price,url,CATEGORY)。现在,当我展示产品时,我需要首先显示所有类别='X'的产品(无论表中产品的实际顺序如何),而不是类别=“Y”的产品,最后是带有类别的产品= “Z”。只有3个类别,我只是将列添加到products表中,而没有创建单独的“类别”表(我知道它很糟糕)。 这是拉出所有产品的简单代码(我不能使用PDO,因为网站已经老了,只用旧的/常规的mysql完成)
while($prod = mysql_fetch_assoc($sql)) {
$id = $prod['id'];
$titolo = $prod['titolo'];
$descr = $prod['descrizione'];
$prezzo = $prod['prezzo'];
$foto_piccola = $prod['url_foto_piccola'];
$foto_grande = $prod['url_foto_grande'];
$cat = $prod['categoria'];
// display all products
}
所以任何想法我怎样才能轻松/快速地做到这一点?我的第一个猜测是在while()循环中进行切换('category'),但我最终得到了很多重复的代码。
非常感谢任何帮助和建议, 谢谢
这是我的$ sql $sql = mysql_query(" SELECT * FROM prodotti Order BY categoria='marmellata' DESC, categoria='altro' DESC, categoria='oli' DESC")
这种方式不起作用。我想拉出类别的名称,然后在下面显示该类别的产品
答案 0 :(得分:1)
如果您的类别字段是INT,并且您的类别按照您想要的顺序输入,则可以Order By category
。
-OR -
如果您的类别是按名称输入的,则可以Order BY category='X' DESC, category='Y' DESC, category='Z' DESC
{尽管我建议按ID输入)
答案 1 :(得分:1)
您甚至可以使用SQL的Field()函数
order by Field(category, X, Y, Z)