วันนี้ขออัปเดตบล็อกของตัวเองซะหน่อยคับ ผมสอนแค่การเพิ่มรายการสินค้า แสดงรายการสินค้า และลบรายการสินค้าก่อนคับ ส่วนการแก้ไขข้อมูลสินค้า ,แก้ไขรูป ,ลบรูปสินค้า จะขออธิบายในบทความตอนต่อไปคับ เนื่องจากว่า เนื้อหาที่จะนำเสนอมีค่อนข้างเยอะ ไม่สามารถอธิบายทั้งหมดได้ในบทความนี้คับ ก่อนอื่นท่านต้องกลับไปศึกษา บทความตอนที่ 1 กับ ตอนที่ 2 ก่อนคับ เผื่อจะได้ไม่งงกับบทความตอนนี้ เพราะมันต่อยอดมาจากบทความตอนที่1กับตอนที่2นั้นเองคับ
ผมได้ดีไซน์เว็บเพจของผม ดังนี้คับ
หน้าเพิ่มรายการสินค้า ไฟล์ addpd.php
|
หน้าแสดงข้อความแจ้งการเพิ่มรายการสินค้า ไฟล์ addpd_save.php
|
หน้าแสดงรายการสินค้าและลบรายการสินค้า showpd.php
|
ผมขอไปไวหน่อยนะคับ ไม่เข้าใจก้อคอมเม้นท์ถามผมก็ได้นะคับ
ดูตัวอย่างได้ที่นี่คับ
ดูตัวอย่างได้ที่นี่คับ
อันดับแรกให้ท่านสร้าง Folder เพื่อเก็บไฟล์รูปสินค้า ของผมตั้งชือว่า img_pd ดังรูป
ไฟล์ addpd.php ให้เขียนเพิ่ม แก้ไข โค๊ดตามนี้เลยคับ
<?php require_once("config.php"); $rs_showcg=$conn->Execute("SELECT * FROM tb_category ORDER BY cg_name ASC"); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-874" /> <link rel="stylesheet" type="text/css" href="jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css"> <link rel="stylesheet" type="text/css" href="style.css"/> <title>เพิ่มรายการสินค้า</title> <script type="text/javascript" src="jquery/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="jquery/jquery-ui-1.7.1.custom.min.js"></script> <script type="text/javascript"> function DialogAlert(){ $("#dialogMsg").dialog("destroy"); $('#dialogMsg').dialog({ bgiframe: true, modal: true, autoOpen: false, width: 400, buttons: { "Ok": function() { $(this).dialog("close"); } } }); } function chkVal(){ var pdname=$(":input#pd_name").val(); var pdamount=$(":input#pd_amount").val(); var pdprice=$(":input#pd_price").val(); var MSG=""; if(pdname==""){ MSG +="ชื่อสินค้าจำเป็นต้องกรอก<br>"; } if(pdamount==""){ MSG+="จำนวนสินค้าจำเป็นต้องกรอก<br>"; } if(pdprice==""){ MSG+="ราคาขายจำเป็นต้องกรอก"; } if(MSG!=""){ DialogAlert();$("#showMsg").html("<font color='red'>"+MSG+"</font>");$("#dialogMsg").dialog("open"); return false; } else { return true; } } </script> <? if($_SERVER["REQUEST_METHOD"]=="POST"){ $pdname=$_POST["pd_name"]; $cgid=$_POST["cg_id"]; $pddetail=$_POST["pd_detail"]; $pdamount=$_POST["pd_amount"]; $pdunit=$_POST["pd_unit"]; $pdcosts=$_POST["pd_costs"]; $pdprice=$_POST["pd_price"]; $pdstatus=$_POST["pd_status"]; $img_name=$_FILES["pd_img"]["name"]; $img_tmp=$_FILES["pd_img"]["tmp_name"]; if($img_name!=""){ $fileType=chkfiletype($img_name); if(!$fileType=="0"){ $pdimg=rand(1,9999999).date("_d-m-y").$fileType;#ตั้งชื่อกับรูปภาพ $sql_addpd="INSERT INTO tb_product(pd_name,cg_id,pd_detail,pd_amount,pd_unit,pd_costs,pd_price,pd_status,pd_img,pd_date) VALUES('".$pdname."',".$cgid.",'".$pddetail."',".$pdamount.",'".$pdunit."',".$pdcosts.",".$pdprice.",'".$pdstatus."','".$pdimg."',SYSDATE())"; $rs_addpd=$conn->Execute($sql_addpd); move_uploaded_file($img_tmp,"img_pd/".$pdimg); @chmod("./img_pd/".$pdimg,0777); } else{ echo "<span id='dialogMsg' title='มีปัญหากับไฟล์รูปสินค้า'><font color='red'><span id='showMsg'> </span></font></span>"; echo "<script>DialogAlert();$('#showMsg').html('คุณเลือกชนิดไฟล์ไม่ถูกต้อง');$('#dialogMsg').dialog('open');</script>"; } }else{ $sql_addpd="INSERT INTO tb_product(pd_name,cg_id,pd_detail,pd_amount,pd_unit,pd_costs,pd_price,pd_status,pd_date) VALUES('".$pdname."',".$cgid.",'".$pddetail."',".$pdamount.",'".$pdunit."',".$pdcosts.",".$pdprice.",'".$pdstatus."',SYSDATE())"; $rs_addpd=$conn->Execute($sql_addpd); } if($rs_addpd==true){ echo "<script>window.location='addpd_save.php';</script>"; } } ?> </head> <body> <div id="container"> <div id="header"> <div id="headerText">Crochet Tukta Online(หลังร้าน)<img src="images/logo.png" width="35" height="57" /></div> </div> <div id="content"> <div id="m_left"> <? require_once("leftmenu.php");?> </div> <div id="m_center"><strong>เพิ่มสินค้าใหม่</strong><br /> <div id="dialogMsg" title="เกิดข้อผิดพลาด"> <div id="showMsg"></div> </div> <form action="<?=$_SERVER["PHP_SELF"]?>" method="post" enctype="multipart/form-data" name="FaddPg" id="FaddPg" onsubmit="return chkVal()"> <table width="100%" border="0" align="center"> <tr> <td align="right">ชื่อสินค้า</td> <td><input name="pd_name" type="text" id="pd_name" value="<?=$pdname?>" size="40" /> *</td> </tr> <tr> <td align="right">หมวดหมู่สินค้า</td> <td><select id="cg_id" name="cg_id"> <? while(!$rs_showcg->EOF){?> <option value="<?=$rs_showcg->fields["cg_id"]?>"> <?=$rs_showcg->fields["cg_name"]?> </option> <? $rs_showcg->MoveNext(); } ?> </select> <a href="addcg.php">เพิ่มหมวดหมู่ใหม่</a></td> </tr> <tr> <td align="right">รายละเอียดสินค้า</td> <td><textarea name="pd_detail" id="pd_detail" cols="45" rows="5"><?=$pddetail?> </textarea></td> </tr> <tr> <td align="right">จำนวน</td> <td><input name="pd_amount" type="text" id="pd_amount" size="7" value="1" /> * หน่วยนับ <select id="pd_unit" name="pd_unit"> <? for($unit_i=0;$unit_i<=count($pd_unit);$unit_i++){ ?> <option value="<?=$pd_unit[$unit_i]?>"> <?=$pd_unit[$unit_i]?> </option> <? } ?> </select> *</td> </tr> <tr> <td align="right">ราคาต้นทุน</td> <td><input name="pd_costs" type="text" id="pd_costs" size="7" value="0.00"/> ราคาขาย <input name="pd_price" type="text" id="pd_price" size="7" value="0.00" /> *</td> </tr> <tr> <td align="right">สถานะสินค้า</td> <td><select id="pd_status" name="pd_status"> <? foreach($pdstatus as $key=>$value){?> <option value="<?=$value?>" <? if($value==$rs_showpd_edit->fields["pd_status"])echo "selected"; ?>> <?=$key?> </option> <? }?> </select> *</td> </tr> <tr> <td align="right">รูปสินค้า</td> <td><input type="file" name="pd_img" id="pd_img" /></td> </tr> <tr> <td> </td> <td><input type="submit" name="bt_savePd" id="bt_savePd" value="บันทึก" /></td> </tr> </table> </form> </div> </div> <div class="clear"></div> <div id="footer"> <h1>copyright©2010 http://php-for-ecommerce.blogspot.com</h1> </div> </div> </body> </html>ไฟล์ addpd_save.php ให้เขียนตามนี้เลย ไฟล์นี้ไม่มีโค๊ดให้น่าปวด เลยคับ
><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-874" /> <link rel="stylesheet" type="text/css" href="jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css"> <link rel="stylesheet" type="text/css" href="style.css"/> <title>บันทึกรายการสินค้า</title> </head> <body> <div id="container"> <div id="header"> <div id="headerText">Crochet Tukta Online(หลังร้าน)<img src="images/logo.png" width="35" height="57" /></div></div> <div id="content"> <div id="m_left"><? require_once("leftmenu.php");?></div> <div id="m_center"><strong>เพิ่มหมวดหมู่สินค้า</strong><br /> <p align="center"> ข้อมูลรายการสินค้าได้ถูกบันทึกเรียบร้อยแล้ว <br /> <a href="showpd.php">ดูข้อมูล</a></p> <br /> </div> </div><div class="clear"></div> <div id="footer"><h1>copyright©2010 http://php-for-ecommerce.blogspot.com</h1></div> </div> </body> </html>ส่วนไฟล์ showpd.php ให้เขียนตามนี้คับ
<? require_once("config.php"); $rs_showpd=$conn->Execute("SELECT tb_product.pd_name,tb_product.pd_detail,tb_category.cg_name,tb_product.pd_id,tb_product.pd_amount,tb_product.pd_unit, tb_product.pd_price,tb_product.pd_img,tb_product.pd_status,tb_product.pd_date FROM tb_product Left Join tb_category ON tb_product.cg_id = tb_category.cg_id ORDER BY tb_product.pd_date DESC"); if(isset($_POST["pd_id"])){ for($i=0;$i<=count($_POST["pd_id"]);$i++){ $conn->Execute("DELETE FROM tb_product WHERE pd_id=".$_POST["pd_id"][$i].""); header("Location:".$_SERVER["PHP_SELF"]); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-874" /> <link rel="stylesheet" type="text/css" href="jquery/css/ui-lightness/jquery-ui-1.7.2.custom.css"> <link rel="stylesheet" type="text/css" href="style.css"/> <title>แสดงรายการสินค้า</title> <script type="text/javascript" src="jquery/jquery-1.4.2.min.js"></script> <script type="text/javascript" src="jquery/jquery-ui-1.7.1.custom.min.js"></script> <script type="text/javascript"> function Delconf(){ var conF=confirm("ยืนยันการลบสินค้า"); if(conF==true){ document.FshowPD.submit(); } } </script> </head> <body> <div id="container"> <div id="header"> <div id="headerText">Crochet Tukta Online(หลังร้าน) <img src="images/logo.png" width="35" height="57" /></div> </div> <div id="content"> <div id="m_left"> <? require_once("leftmenu.php");?> </div> <div id="m_center"><strong>แสดงรายการสินค้า</strong><br /> <div id="dialogMsg" title="ข้อความจากระบบ"> <div id="showMsg"></div> </div> <form id="FshowPD" name="FshowPD" method="post" action="<?=$_SERVER["PHP_SELP"]?>"> <table width="100%" border="0" cellpadding="3" cellspacing="0"> <tr bgcolor="#CCCC00"> <td><strong>วันที่ืบันทึก</strong></td> <td><strong>ชื่อสินค้า</strong></td> <td><strong>หมวดหมู่</strong></td> <td><strong>จำนวน</strong></td> <td><strong>ต้นทุน</strong></td> <td><strong>ราคาขาย</strong></td> <td><strong>สถานะ</strong></td> <td><strong>ลบ</strong></td> </tr> <? $_COUNT=0; while(!$rs_showpd->EOF){ if($_COUNT%2==0) $_BgColor="#CCCCCC"; else $_BgColor="#FF9900"; $_COUNT++; ?> <tr bgcolor="<?=$_BgColor?>"> <td><?=$rs_showpd->fields["pd_date"];?></td> <td><a href="editpd.php?edit_id=<?=$rs_showpd->fields["pd_id"]?>"> <img src="images/icon/write.gif" width="16" height="16" border="0" /> </a> <?=$rs_showpd->fields["pd_name"];?></td> <td><?=$rs_showpd->fields["cg_name"];?></td> <td><?=$rs_showpd->fields["pd_amount"];?></td> <td><?=$rs_showpd->fields["pd_costs"];?></td> <td><?=$rs_showpd->fields["pd_price"];?></td> <td><?=pd_stauts($rs_showpd->fields["pd_status"]);?></td> <td><input type="checkbox" name="pd_id[]" id="pd_id[]" value="<?=$rs_showpd->fields["pd_id"]?>"/></td> </tr> <? $rs_showpd->MoveNext();} ?> <tr> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td> </td> <td><a href="#" onclick=" Delconf()"> <img src="images/icon/del.gif" width="16" height="16" border="0" /> </a></td> </tr> </table> </form> </div> </div> <div class="clear"></div> <div id="footer"> <h1>copyright©2010 http://php-for-ecommerce.blogspot.com</h1> </div> </div> </body> </html>ดูตัวอย่างโปรแกรมได้ จากที่นี่คับ
พี่คะ แอดสินค้าได้ แต่หมวดหมู่ไม่เข้าค่ะ และก็ไม่โชว์ด้วย TT^TT
ตอบลบหมวดหมู่สินค้า ผมใช้ตัวแปร $cgid รับค่าที่ส่งมา คือ
ตอบลบ$cgid=$_POST["cg_id"];
เวลา insert ลงฐานข้อมูลต้องลองเช็คดูว่าเราใช้ ฟิลด์ชื่ออะไรเก็บหมวดสินค้าครับ ของผมใช้ฟิลด์ชื่อ cg_id
ดูคำสั่ง sql ด้านล่างเป็นตัวอย่างครับ
INSERT INTO tb_product(pd_name,cg_id,pd_detail,pd_amount,pd_unit,pd_costs,pd_price,pd_status,pd_img,pd_date) VALUES('".$pdname."',".$cgid.",'".$pddetail."',".$pdamount.",'".$pdunit."',".$pdcosts.",".$pdprice.",'".$pdstatus."','".$pdimg."',SYSDATE())
สังเกตุ cg_id กับตัวแปร $cgid ครับ
ควรกำหนดตำแหน่งให้ตรงกัน ซึ่ง cg_id จะอยู่ตำแหน่งที่ 2 และค่าใน VALUES ต้องอยู่ในตำแหน่งที่ 2 เช่นกันครับ
แอดหมวดสินค้าเข้าแล้วค่ะ ขอบคุณนะคะ แต่ติดปัญหาตอนเอามาโชว์นี่แหละค่ะ มันไม่ขึ้น
ตอบลบลองเช็คคำสั่ง SQL และการ Jonin Table ดูครับ ลองดูคำสั่งข้างล่างนี้
ตอบลบSELECT tb_product.pd_name,tb_product.pd_detail,tb_category.cg_name,tb_product.pd_id,tb_product.pd_amount,tb_product.pd_unit,
tb_product.pd_price,tb_product.pd_img,tb_product.pd_status,tb_product.pd_date FROM tb_product Left Join tb_category ON tb_product.cg_id = tb_category.cg_id ORDER BY tb_product.pd_date DESC
สังเกตุตรง SELECT นะครับ tb_category.cg_name คือชื่อหมวดสินค้าที่ผมจะเอามาโชว์ครับ
เวลาเอามาแสดงในหน้าเว็บผมใช้คำสั่ง
<?=$rs_showpd->fields["cg_name"];?>(จะอยู่ในไฟล์ showpd.php บรรทัดที่ 65)
พี่ขาแจ้งที่ทำไม่ต้องสวยหรูมาก ราคาเท่าไหร่ค่
ตอบลบประมาณ 4,500 ครับ
ลบจบง่ายดี จ้างพี่เค้าทำเยย
ตอบลบเค้าอุสาสอน
อิๆ
แต่ขอบคุณจิงๆ
เรียนรุ้อะไรจากพี่เยอะ
พี่ครับ ลองrunหน้า addpd แล้วมันบอกว่ามีปัญหาตรงบรรทัดนี้อะครับ
ตอบลบ$fileType=chkfiletype($img_name);
พอผมลบทิ้ง มันก็ได้ปกติเยย แต่รู้ที่อัพโหลดดันไม่ส่งไปที่folderอะครับ
ทำไงดี
มันไม่ฟังชั่น chkfiletype ครับ
ลบให้ทำตามในบทความนี้ครับ ในขั้นตอนที่ 1
http://php-for-ecommerce.blogspot.com/2010/10/2.html
ดีคะพี่ หนูลองทำตามพี่หมดเยย แต่เวลาหนูรันมันอะคะ ตรงหน้า showpdอะ มันขึ้นฟ้องว่าผิดตรงนี้อะคะ
ตอบลบMoveNext();} ?>
แต่ก็ยังเปิดเห็นหน้านะคะ แค่มันขึ้นมาบนตารางว่าบันทัดนี้ผิดอะคะ
แล้วหนู่ก็เจอปัญหาเดียวกับคนข้างบนนี้ด้วยอะคะ แต่อันนี้ไม่ขึ้นอะไรเยยนะคะ ขึ้นว่าบอกแต่ว่าผิด แบบเดียวกันเยยคะ
หนูลองลบทิ้งแบบเค้า ก็เป็นแบบเค้าเลยคะ รูปมันไม่ส่งไปที่โฟเดอร์
ไม่รู้จะแก้ยังไงคะ
ขอบคุณมากคะ
ทำตามคำแนะนำ ตามที่ได้ผมตอบความคิดเห็นข้างบนได้เลยครับ
ลบไม่น่าจะมีปัญหาแล้วครับ ขอบคุณที่แจ้งให้ทราบครับ ^^
พี่คะ
ตอบลบหนู่อัพโหลด ไฟร์รูปเข้าใปในโฟเดอร์ได้แล้ว
แล้วเวลากดเปิด รูป มันเปิดไม่ได้อะครับ
หนูอัพโหลด Jpeg ไฟล์อะคะ
ทำไงดี หรือว่าปกติจะเปิดไฟล์รูปไม่ได้หลอคะ
มันไม่รองรับไฟล์นามสกุลนี้ครับ รองรับแค่ jpg,gif,png เท่านั้น
ลบวิธีแก้
พิมพ์คำสั่ง || $filetype==".jpeg"
ต่อท้ายคำสั่ง $filetype==".png" ครับ
โดยแก้ที่ฟังชั่น chkfiletype จาก http://php-for-ecommerce.blogspot.com/2010/10/2.html
ตรงขั้นตอนที่ 1 ได้เลยครับ
พี่คะตรง $rs_addpd=$conn->Execute($sql_addpd);
ตอบลบมันขึ้น Parse error: syntax error, unexpected T_VARIABLE
แก้ยังไงคะ
ดูวิธีแก้ตามนี้ครับ
ลบhttp://www.select2web.com/php/syntax-error-unexpected-t_variable.html
พี่ครับ จะให้มันเลือกโชว์ตามหมวดหมู่ ด้วย dropdownlist ด้วย ทำไงอะครับ
ตอบลบลองเอาเนื้อหาจากหน้านี้ไปประยุกต์ดูครับ-->การค้นหาสินค้า
ลบแค่เปลี่ยนช่องกรอกข้อมูลเป็นDropdownlistหมวดหมู่สินค้าแทน และแก้โค๊ดให้มันค้นหาจากหมวดสินค้าอีกนิดหน่อยเท่านั้นเองครับ ไม่ยากเลย...
ขอบคุณมากเลยครับพี่ น่าจะเป็นเพราะว่า ผมสับสนกับการใช้ Get กับ Post อะครับ
ลบพี่ค่ะหนูทำตามพี่ทุกขั้นตอนแล้ว แต่แอดสินค้าไม่ได้ และก็ไม่โชว์ด้วยค่ะ
ตอบลบ