2011-10-24 2 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, 게시 된 경우, 책과 가장 높은 가격 (선택이 사용자에 대한 하나되어) 현재 및 사이트는 표시이다. 다른 사용자가 그 책에 120 달러를 올렸고 지금은 가장 높은 가격 (1이 선택됨)이고 이전 사용자의 선택은 0입니다. 특정 제품의 가격을 비교하는 방법을 알아 내고 선택한 0 개의 저렴한 가격을 모두 바꿀 수는 없습니다 생성물. 내가 어떻게 할 수 있니? 죄송합니다 나는 새로운 오전 :(

이 같은
+1

지금까지 무엇을 얻었습니까? –

+0

가장 높은 가격을 선택할 수 없어서 1을 (를) 선택한 사람이 두 명 이상 있습니다. ( – user893970

+0

코드를 게시하십시오.) –

답변

3

당신은 MySQL의에서 MAX의 기능을 사용할 수 있습니다 colomn의 가장 높은 숫자를 얻을 수 있습니다. 예 :

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

관련 문제