ระบบทะเบียนสินค้า ตอนที่ 3 เพิ่ม/แสดง/ลบ รายการสินค้า
ระบบทะเบียนสินค้า ตอนที่ 3 เพิ่ม/แสดง/ลบ รายการสินค้า
วันนี้ขออัปเดตบล็อกของตัวเองซะหน่อยคับ ผมสอนแค่การเพิ่มรายการสินค้า แสดงรายการสินค้า และลบรายการสินค้าก่อนคับ ส่วนการแก้ไขข้อมูลสินค้า ,แก้ไขรูป ,ลบรูปสินค้า จะขออธิบายในบทความตอนต่อไปคับ เนื่องจากว่า เนื้อหาที่จะนำเสนอมีค่อนข้างเยอะ ไม่สามารถอธิบายทั้งหมดได้ในบทความนี้คับ ก่อนอื่นท่านต้องกลับไปศึกษา บทความตอนที่ 1 กับ ตอนที่ 2 ก่อนคับ เผื่อจะได้ไม่งงกับบทความตอนนี้ เพราะมันต่อยอดมาจากบทความตอนที่1กับตอนที่2นั้นเองคับ
ผมได้ดีไซน์เว็บเพจของผม ดังนี้คับ
วันนี้ขออัปเดตบล็อกของตัวเองซะหน่อยคับ ผมสอนแค่การเพิ่มรายการสินค้า แสดงรายการสินค้า และลบรายการสินค้าก่อนคับ ส่วนการแก้ไขข้อมูลสินค้า ,แก้ไขรูป ,ลบรูปสินค้า จะขออธิบายในบทความตอนต่อไปคับ เนื่องจากว่า เนื้อหาที่จะนำเสนอมีค่อนข้างเยอะ ไม่สามารถอธิบายทั้งหมดได้ในบทความนี้คับ ก่อนอื่นท่านต้องกลับไปศึกษา บทความตอนที่ 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 อะครับ
ลบพี่ค่ะหนูทำตามพี่ทุกขั้นตอนแล้ว แต่แอดสินค้าไม่ได้ และก็ไม่โชว์ด้วยค่ะ
ตอบลบ