0

メニュー システムを作成しようとすると、そのメニュー内で、1 つの列に基づいて MySQL にあるものをすべて表示します。

現在、管理パネルから製品を追加でき、MySQL データベースに追加されます。商品を追加する際に、この商品にブランド名(ディーゼル、リーバイなど)を付けることができます。

質問1

を使用して PHP ファイルで MySQL のデータベースの内容を表示する方法がわかりましたが、これによりSELECT brand FROM products ...、メニューに重複したすべてのブランド (たとえば、リーバイス 3 つ、ディーゼル 6 つ) が表示され、次のように表示されます。

レヴィ
レヴィ
レヴィ
ディーゼル
ディーゼル
ディーゼル
ディーゼル

しかし、私はそれぞれ1つしか必要としません。どうやってやるの?

質問番号 2

ディーゼル カテゴリをそのブランドの製品にのみリンクするにはどうすればよいですか? たとえば、誰かがディーゼル カテゴリをクリックすると、php はディーゼル ブランドの製品のみを表示します。

4

3 に答える 3

5

これらは、リレーショナル データベースに関する非常に単純な質問です。

1; DISTINCT次のようなクエリで使用します

SELECT DISTINCT `brand` FROM `products`;

2; 何らかの方法WHEREで渡すパラメーターに基づいて、句を使用する必要があります。category.php既存のコードがなければ、実際には役に立ちませんが、これはおそらくファイルのようなものcategory.phpがとにかく行うべきことです。

とはいえ、ブランドは実際には別のテーブルに含まれ、製品からリンクされている必要があります (おそらく、1 つの製品が 1 つのブランドを持つことができますが、ブランドは多くの製品を持つことができます)。私の意見では、プロジェクトを続行する前に、データベース設計の概念を実際に調べておく必要があります。


これは、あなたの関係がどのように機能するかを示す非常に簡単な図です。 単純なリレーショナル

ブランドを照会するのではなく、ブランドのリストを取得するproductsだけです。SELECT name FROM brand

brand_id次に、 toを渡すと、category.phpso のような製品を取得できますSELECT * FROM product WHERE brand_id = 1

于 2013-02-28T21:46:48.497 に答える
1

少し SQL を使用する必要があります。

異なるブランドを取得するには:

'SELECT DISTINCT brand from products'

特定のブランドの製品を入手するには

'SELECT products WHERE brand = "diesel"'

2 番目のクエリを記述するときは、ユーザーが意図的に有害なデータを入力できないように注意してください。次のような準備済みステートメント (PDO / mysqli) を使用します。

$stmt = $dbh->prepare('SELECT products WHERE brand = :brand');
$stmt->bindParam(':brand', $brand);

他の回答と同じように、おそらくデータベースを少し設計して、データが何であるか、他のデータとどのように関連しているかを調べたいと思います。

于 2013-02-28T21:48:33.280 に答える
1

Question 1: Your query should be this:

Select distinct brand from products

Question 2 :

You should send the brand to category.php page:

For example the link should be like this:

category.php?brand=disel

Then on category.php page you should change your query somehow like this:

    if(isset($_GET['brand']))

        mysql_query("select * from products where brand='".$_GET['brand']."'");
    else
        mysql_query("select * from products");

and it is better to send your brand id instead of brand string to category.php for the query has better performance.

于 2013-02-28T21:50:23.077 に答える