ต้องการดึงค่าออกมา แล้ว 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 ที่เขียนไว้เป็นลักษณะ แบบนี้น่ะค่ะ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <? $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 ทั้งหมดเท่านั้น
ไม่ทราบว่าจะแก้ไขยัไงดีคะ

คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
ไม่รู้เงื่อนไข การแสดงผลเราเป็นยังไงน่ะ
ถ้าเป็นการวน แสดงรายการสินค้า ทั้งหมด แลัวมีสถานะว่า สินค้าหมด หรือมีสินค้า
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 แสดงว่าสินค้าหมด

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