2011-10-24 8 views
-2

私は取引サイトを開発中です。ユーザーは、特定の製品に対して100ドル、120ドルの料金を掲示します。その製品の最高価格を表示したかったので、現在の最高価格が前の最高価格を置き換えることになります。 MySQLのテーブルがある:私はやってみたかったmysqlの最高の番号を選択

user_email //The user who gives price for the product 
product//The product name 
price//The prices that users posted 
chosen//it will be 1 if it is highest otherwise 0 

どうかのユーザーは、例えば、本をのための$ 100に掲示し、それが最高価格(選ばれたが、このユーザーの1である)と、サイトはそれを表示し、現在であるということです。別のユーザーがその書籍の$ 120を掲示しています。これは今では最も高い価格です(1が選択されています)。以前のユーザーの選択は0です。特定の製品の価格を比較し、製品。これどうやってするの?申し訳ありませんが、私は:(このような

+1

これまでに何がありますか? –

+0

最高の価格を選ぶことができなかったため、複数の選択肢があります:( – user893970

+0

コードを投稿してください –

答えて

3

あなたは、MySQLからMAX関数を使用することができますコロンの最高数を取得する。例:

SELECT MAX(field) FROM `table_name` 

WHEREを追加するだけで検索フィールドが限定されます。

した後、あなたは、製品IDになります。この

UPDATE `table_name` SET `field` = 0 WHERE `product` = "X" AND `id` != Y 

Xのようなもので、他のすべてを更新し、Yは、最初のクエリからのIDになります。

1

何かがORDER BY句を使用して、

$q = $dbc -> prepare("SELECT price FROM table_name ORDER BY price DESC LIMIT 1"); 

あなたを新たに行う予定しています今では、

$q -> execute(); 
$highest = $q -> fetch(PDO::FETCH_ASSOC); 
などの変数に格納し、あなたに利用可能な最高の価格を取得します

は、今すぐ、これは必要性を排除します

$q = $dbc -> prepare("UPDATE table_name SET price = 0 WHERE price != ?"); 
$q -> execute(array($highest)); 

、ゼロに他のすべてのユーザーの価格を変更しますBID IDの別のパラメータを使用して上記のクエリの逆を使用して簡単に見つけることができます。

私は非常にあなたが取引サイトを作っている場合、私は、これはあなたが達成したかったものだった願っています示唆この例では、PDOを使用している

ハッピーコーディング、

+0

selectクエリの最後に 'DESC'を追加する必要があると思いますが、その後に' LIMIT 1'を追加するとよいでしょう。 – ghbarratt

+0

完了、LIMIT 1を忘れてしまいました – cgweb87

関連する問題