2014-05-26 3 views
0

PHP를 사용하는 MySQL 데이터베이스에서 if 문으로 업데이트 쿼리를 실행하고 싶습니다. 고객 주문이있는 수량 인 경우에만 내 eshop에서 재고를 갱신하고 싶습니다. 나는이IF를 사용하는 PHP 업데이트 쿼리

$sql = "UPDATE products SET\n" 
. "stock = IF(stock>=$quantity, stock=stock-$quantity, IF(stock<=$quantity, stock=stock))\n" 
. "WHERE product=$product"; ` 

등이

$updatequery = "UPDATE products 
       SET stock 
       CASE WHEN (stock >= '$quantity') THEN (stock=stock-'$quantity') 
        ELSE (stock= stock) 
       END 
       WHERE product='$product'"; ` 

나 같은 내가 데 문제를 도와 줄 수있는 사람이 있습니까 시도?

+0

당신이 어떤 오류를 얻고있다 : 다음을 시도? – neelsg

+0

성공 했습니까? – potashin

답변

2

CASE에서 stock = stock과 같은 표현식을 반환 할 수 없습니다.

$sql = "UPDATE products 
     SET stock = CASE 
         WHEN stock >= $quantity THEN (stock - $quantity) 
         ELSE stock 
        END 
     WHERE product = '$product' " 

또는

$sql = "UPDATE products 
     SET stock = IF(stock >= $quantity, (stock - $quantity), stock) 
     WHERE product = '$product' " 
+1

+1. . . 그러나 "수량"주위의 작은 따옴표는 불필요합니다 (숫자 여야하기 때문에). –

관련 문제