商品をコレクション内に入れることができる商品システムをやっています。商品の表示ORコレクション
商品のページはすべての商品を表示していますが、商品がコレクションの中にある場合は商品名ではなくコレクション名のみを表示する必要があります。つまり、コレクション内にある製品を隠すことになりますとコレクションを一度と表示し、他の製品(コレクションなし)も表示します。
表1:colecciones( "collections" in Spanish) - ここでは、コレクションのIDと名前を格納しています。
CREATE TABLE `colecciones` (
`id` INT(255) NOT NULL AUTO_INCREMENT ,
`nombre` VARCHAR(100) NOT NULL ,
PRIMARY KEY (`id`)
);
INSERT INTO `colecciones`
(`nombre`)
VALUES
('dulce'),('salado'),('agrio')
;
http://sqlfiddle.com/#!9/8534e/1/0
表2:PRODUCTOS( "製品") - それは、コレクション内にある場合、私は、製品を保管して、コレクションID(欄 "COLECCION")。そうでない場合、値は0です。例を見てみると
CREATE TABLE `productos` (
`id` INT(255) NOT NULL AUTO_INCREMENT ,
`nombre` VARCHAR(100) NOT NULL ,
`coleccion` INT(255) NOT NULL ,
PRIMARY KEY (`id`)
);
INSERT INTO `productos`
(`nombre`, `coleccion`)
VALUES
('manzana',1),('salmon',2),('sandia',0),('sopa',3),('pera',1),('agua',0)
;
http://sqlfiddle.com/#!9/6aef2/1/0
で、名前「manzana」(りんご)との積は、「コレクションの一部「ドゥルセ」(甘い)、および製品ですアグア "(水)はコレクションの一部ではありません。私はこれにこだわっている
<h1>My products</h1>
dulce /* (ID 1 table `colecciones`) because I have products with "coleccion = 1" */
salado /* (ID 2 table `colecciones`) because I have products with "coleccion = 2" */
sandia /* the product itself, not collection */
agrio /* (ID 3 table `colecciones`) because I have products with "coleccion = 3" */
agua /* the product itself, not collection */
:私は示すことが期待
はこれです。この方法でデータをPHPでどのように表示できますか?
SELECT * FROM productos WHERE coleccion = 0;
これは与える:順序は重要ではありません場合は
ORDER BY c.`id` DESC
こんにちはゴードン。最初のクエリは私にとって非常に便利です。ありがとうございます!してください、理解するのを助けてください。なぜいくつかの手紙があります( "c.name"、 "productos p"、 "colecciones c"など)? –
今、製品は "ORDER BY productos.nombre ASC"のように表示されていますが、 "ORDER BY productos.id DESC"が必要です(前の製品は前に表示されています)。 @JimmyAdaro。 –
。 。これは特定の順序で製品を返すことはまったくありません。質問にはその注文は言及されていません。 –