ต้องการดึงค่าออกมา แล้ว check ว่ามีจำนวนสินค้าหรือไม่

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ต้องการดึงค่าออกมา แล้ว check ว่ามีจำนวนสินค้าหรือไม่

ต้องการดึงค่าออกมา แล้ว check ว่ามีจำนวนสินค้าหรือไม่

พอดีทำระบบ cart อยู่ค่ะแล้วต้องการดึงค่า ออกมาโดย check ว่าเงื่อนไขว่า สินค้ามีนี้ถูกซื้อไปหมดหรือยัง

ซึ่งลักษณะของ db จะเป็นลักษณะอย่างนี้ค่ะ

id        product_id                serial_id

1                 5                                0

2                 5                                1

3                 5                                1

4                 5                                0

ซึ่งปัญหาติดอยู่ตรงที่ จะ check ยังไงดีคะ ว่า

- ถ้า serial_id มีค่า 0 อยู่ไม่ว่าจะกี่แถวก็ตาม ให้โชว์ว่า มีสินค้า

- แต่ถ้า serial_id มีค่าเป็น 1 ทั้งหมดทุกแถวให้โชว์ข้อความว่า สินค้าหมด

* โดยสินค้าจะมี product_id ที่เหมือนกัน

ตัว code ที่เขียนไว้เป็นลักษณะ แบบนี้น่ะค่ะ

<?
$sql="select serial_id from product where product_id='$_GET[id]' group by serial_id";
$record_set = $connect->Execute($sql);

while(!$record_set->EOF){

$serial_id = $record_set->fields[serial_id];
if($serial_id!=0){
    echo "สินค้าหมด";
}

$record_set->MoveNext();
}
?>

 

แต่เวลา test จริง ถ้าค่าใน db มี ค่า 1 แค่อันเดียวก็โชว์ว่าสินค้าหมด ซึ่งในความเป็นจริงต้องการให้โชว์สินค้าหมด เฉพาะเมื่อค่า serial_id เป็น 1 ทั้งหมดเท่านั้น

ไม่ทราบว่าจะแก้ไขยัไงดีคะ 



Jureerat 183.89.5.xxx 15-03-2011 22:28:06

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

ไม่รู้เงื่อนไข การแสดงผลเราเป็นยังไงน่ะ
ถ้าเป็นการวน แสดงรายการสินค้า ทั้งหมด แลัวมีสถานะว่า สินค้าหมด หรือมีสินค้า

SELECT * ,
COUNT( id ) AS num_product,
SUM( serial_id ) AS num_sale
FROM product
WHERE 1
GROUP BY product_id

แล้วเอา num_product (จำนวนสินค้าทั้งหมด)
กับ num_sale (จำนวนสินค้าที่ขายได้) คือ serial = 1 (serial ต้องเก็บ เป็น int)
ถ้า num_product เท่ากับ num_sale  แสดงว่าสินค้าหมด

แต่ถ้าเป็นการแสดงค่าว่า สินค้า หนึ่งๆ นั้น สินค้าหมด หรือมีสินค้า

SELECT * ,
COUNT( id ) AS num_product,
SUM( serial_id ) AS num_sale
FROM product
WHERE 1
AND product_id='".$_GET['proid']."'
GROUP BY product_id
แล้วเปรียบเทียบค่าเหมือนข้างต้น

ถ้า num_product เท่ากับ num_sale  แสดงว่าสินค้าหมด



Ninenik 124.120.12.xxx 15-03-2011
 ความคิดเห็นที่ 2

ขอบคุณมากค่ะ



Atomy 58.8.20.xxx 17-03-2011 09:50






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ