ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingรบกวนขอคำแนะนำเรื่อง script php ครับ
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: รบกวนขอคำแนะนำเรื่อง script php ครับ  (อ่าน 629 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
carambola
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 28



ดูรายละเอียด
« เมื่อ: 11 มีนาคม 2017, 11:13:02 »

1 ผมสร้าง ฐานข้อมูลในdatabase ไว้ เพื่อจะดึงนำมาแสดงบนหน้าเว็บ ​php   
2 อยากให้ช่วยแนะแนวทาง เพื่อนำมาประยุกต์ใช้ครับ เกี่ยวกับ ระบบตระกร้าสินค้า อยากได้เงื่อนไขที่ว่า สมมุติว่ามีสินค้าอยู่่ 10 ชนิด
หากเลือกสินค้า 1 ชนิดมายังตะกร้าสินค้าแล้ว เมื่อกลับไปเลือกนั้นอีกครั้ง จะไม่สามารถเลือกสินค้าเดิมได้ ซ้ำครับ พร้อมแจ้งสถานะของสินค้าทั้ง​ 10 ชนิดว่าชิ้นไหนสามารถซื้อได้บ้างครับ ประมาณนี้ครับ
ผมรบกวนพี่ๆเซียนๆช่วยหน่อยครับ นั่งงง หาข้อมูลมาเป็นอาทิตย์แล้วครับ ไม่สำเร็จสักทีครับ

ขอบคุณมากๆครับ
บันทึกการเข้า
nst_nk
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 385
ออฟไลน์ ออฟไลน์

กระทู้: 3,396



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 11 มีนาคม 2017, 11:59:23 »

1. ทำตารางสถานะของสินค้าไว้ เช่น หมด มีสต็อก  pre order 
2. ในตารางของสินค้า ให้ใส่รหัส หรือไอดี หรือ code อะไรก็ได้ตามที่ออกแบบไว้ใน ตารางสถานะลงไปด้วย
3. ในหน้ารายละเอียดสินค้าให้ ดึงข้อมูลตารางสถานะมาแสดง ( เราต้อง query สินค้าอยู่แล้ว ก็เอาข้อมูลฟิลที่เก็บสถานะเชื่อมโยง ไป query ตารางสถานะมาแสดงอีกที )
4. ในหน้าตะกร้า ก่อนจะเก็บลงตารางตะกร้า ก็ให้เช็คก่อน ว่ามีสินค้านั้นๆ อยู่ในตารางแล้วหรือเปล่า
   เช่น  ออกแบบตระกร้าว่า เก็บ  id สินค้า / จำนวนชิ้น  ปกติเราจะเก็บเลยแบบ insert เราก็เช็คก่อนโดยการ query ว่ามี id สินค้านี้อยู่ใน database หรือเปล่า
   code ง่ายๆ  SELECT id_product FROM  tb_cart where id_product ='$_GET[id_product]'   ถ้า query แล้วมีค่ากลับมาแสดงว่ามีสินค้าอยู่แล้วครับ


   ปล 1 ลองเอาไปดัดแปลงดูนะ ผมเขียนไอเดียคร่าวๆให้ครับ
   ปล 2 จริงๆไม่ต้องกันไม่ให้เลือกเพิ่มได้ก็ได้ครับ ตามหลักการแล้ว ถ้าเพิ่มมาแล้วรอบหนึ่ง  แล้วไปกดเพิ่มเข้าตะกร้าสินค้าด้วยสินค้าเดิมอีก เราก็ update +1 เข้าไปก็ได้ครับ
บันทึกการเข้า


  ◤◤ รับเขียนระบบต่างๆครับ เช่น ระบบ Shipping , ร้านค้าออนไลน์ , อสังหาริมทรัพย์ , ระบบจัดการหลังบ้านทุกประเภท  สอบถามได้ครับ Line : bigznst ◥◥
sputtaro
สมุนแก๊งเสียว
*

พลังน้ำใจ: 139
ออฟไลน์ ออฟไลน์

กระทู้: 910



ดูรายละเอียด
« ตอบ #2 เมื่อ: 11 มีนาคม 2017, 12:22:45 »

ถ้าทำระบบเอง
ควรมี ฟิลด์ จำนวนสินค้า
และสถานะสินค้า ควรมี สถานะ อยู่ระหว่างการจัดส่ง(อาจใช้ชื่ออื่นที่มีความหมายแบบนี้) เข้าไปด้วย
เพราะ เมื่อลูกค้าสั่งซื้อ เราจะตัดยอด จำนวนสินค้า ลง 1 ชิ้น(หรือตามจำนวนที่ลูกค้าสั่งซื้อ) และให้ยอดนี้ มีสถานะ อยู่ระหว่างการจัดส่ง
ในหน้ารายละเอียดสินค้า เราจะสามารถแจ้งให้กับผู้ใช้งานทราบได้ว่า
มีสินค้าเหลือกี่ชิ้น และอยู่ระหว่างการจัดส่งกี่ชิ้น
(สินค้าที่อยู่ระหว่างการจัดส่ง อาจมีการคืนได้เสมอนะครับ)

ลองเอาตามที่ท่านด้านบน(รวมทั้งท่านอื่นๆ) มาพิจารณาเป็นแนวทางนะครับ
จากนั้นค่อยประยุกต์ให้เข้ากับระบบที่คุณเขียนขึ้น

********************
ลืมพูดถึง การเลือกสินค้า

เราอาจใช้ session หรือ  cookie ก็ได้ ใช้ในการบันทึก id ของสินค้า ที่ผู้ใช้กดเลือกเข้าไปในตะกร้า
จากนั้นเมื่อมีการกดเพิ่มสินค้าเข้าไปอีก ให้เช็ค ว่า มีใน session หรือ  cookie แล้วหรือยัง
ถ้ามีแล้ว แสดงคำเตือนว่า มีสินค้านี้อยู่ในตะกร้าแล้ว คุณต้องการเพิ่มจำนวนอีก ใช้มั๊ย ...
ถ้ายังไม่มี ก็เลือกมาจากฐานข้อมูลตามปกติ

ถ้าไม่ใช้ session หรือ  cookie ก็อาจเป็น Temp Table หรืออะไรก็แล้วแต่ หลักการก็ประมาณนี้แหละครับ หวังว่าคงนึกภาพออก
ตัว session หรือ  cookie นี้ สามารถเอามาใช้ประโยชน์อื่นๆได้อีกนะ
 เช่น ใช้แสดงrelated products  หรือ แสดง "หน้าที่คุณเพิ่งดู"(ประมาณ ประวัติการดูของลูกค้าที่เพิ่งผ่านมานี่แหละครับ)
« แก้ไขครั้งสุดท้าย: 11 มีนาคม 2017, 12:46:55 โดย sputtaro » บันทึกการเข้า
carambola
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 28



ดูรายละเอียด
« ตอบ #3 เมื่อ: 11 มีนาคม 2017, 13:53:51 »

จากสคริปนี้ครับ
<?
mysql_connect("xxxxx","xxx","xxxx");
mysql_select_db("xxxxx");
?>
<table width="400"  border="1">
  <tr>
    <!--<td width="101">ลำดับที่</td>-->อันนี้ไม่ใช้ครับ
    <td width="82" align="center">หมายเลข</td>
    <td width="82" align="center">ราคา</td>
    <!--<td width="79">จำนวน</td>-->อันนี้ไม่ใช้ครับ
    <td width="79" align="center">รวมทั้งสิ้น</td>
  </tr>
  <?
  $Total = 0;
  $SumTotal = 0;

  for($i=0;$i<=(int)$_SESSION["intLine"];$i++)
  {
     if($_SESSION["strProductID"][$i] != "")
     {
      $strSQL = "SELECT * FROM product WHERE ProductID = '".$_SESSION["strProductID"][$i]."' ";
      $objQuery = mysql_query($strSQL)  or die(mysql_error());
      $objResult = mysql_fetch_array($objQuery);
      $Total = $_SESSION["strQty"][$i] * $objResult["Price"];
      $SumTotal = $SumTotal + $Total;
     ?>
     <tr>
      <!--<td align="center"><?=$_SESSION["strProductID"][$i];?></td>-->
      <td align="center"><img src="img/<?=$objResult["Picture"];?>" width="50px" height=""></td>
      <td align="center"><?=$objResult["Price"];?></td>
       <!--<td><?=$_SESSION["strQty"][$i];?></td>-->
      <td align="center"><?=number_format($Total,2);?></td>
  </tr>
     <?
     }
  }
  ?>
</table>

สอบถามว่า หลังจากส่งข้อมูลจากสคริปด้านบนแล้ว อยากให้หักจำนวนสต็อกออก พร้อม <td align="center"><img src="img/<?=$objResult["Picture"];?>" width="50px" height=""></td> รูปทีีดึงมาแสดงให้เปลี่ยนสีหรือไม่สามารถคลิ๊กได้อะครับ
1 ผมต้องสร้าง ฟิลด์ฐานข้อมูล เป็นจำนวนคงเหลือในสต็อกเพิ่ม พร้อมระบุค่าจำนวนสต๊อกที่เหลือใช่มั้ยครับ?
2 จะเขียนสคริปอย่างไรครับ เพื่อให้ไปหักในสต๊อกครับ พอมีตัวอย่างคร่าวๆหรือเปล่าครับ

ขอบคุณครับ งงจริงๆครับ
บันทึกการเข้า
sputtaro
สมุนแก๊งเสียว
*

พลังน้ำใจ: 139
ออฟไลน์ ออฟไลน์

กระทู้: 910



ดูรายละเอียด
« ตอบ #4 เมื่อ: 11 มีนาคม 2017, 14:51:15 »

ขออนุญาตแนะนำดังนี้ครับ
1. ค้นหา และ/หรือ ดาวน์โหลด ตัวอย่างการเขียน "php shopping cart example" เพื่อศึกษา และ/หรือ ดูแนวทาง
2. ควรใช้ mysqli และพยายามให้เป็นค่าเริ่มต้นที่ดี เช่น
<? ควรเป็น <?php
if($_SESSION["strProductID"][$i] != "") ควรเป็น  if((isset($_SESSION["strProductID"][$i])...
เป็นต้น
3. จำนวนคงเหลือ ก็คือ ค่าจำนวนสินค้า ที่ลบด้วยจำนวนที่มีการสั่งซื้อ
(โดยการสั่ง update ...  จำนวนสินค้า=(ค่าจำนวนสินค้า-จำนวนที่มีการสั่งซื้อ) where productid=productidที่ลูกค้าสั่งซื้อ)
ดังนั้น มีแค่ฟิลด์ จำนวนสินค้า ก็พอ

หวังว่าจะมีประโยชน์นะครับ

« แก้ไขครั้งสุดท้าย: 11 มีนาคม 2017, 14:57:08 โดย sputtaro » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์