ผมต้องเขียน code แบบไหนครับ ถึง id จะเป็น แบบ A0001 BD0001 แนะนำทีครับ
คือผมงงคำถามอะครับ
Date :
2011-04-05 22:00:48
By :
bank32
ประมาณว่า ให้มัน run id เป็น A001 A00 2 A00 3 A004 ไปเรื่อยๆๆใช่ไหมครับผมเองก็อยากทำเป็นเหมือนกันครับ
Date :
2011-04-05 23:16:36
By :
thelak
<?php
include("config.inc.php");
$a = 'A';
$sql="select * from xxx order by id desc limit 0,1" ;
$result=mysql_query($sql);
$r=mysql_fetch_array($result);
$id_max=$r[0]+1;
$text = str_pad($id_max, 3, "0", STR_PAD_LEFT);
$show=$text ;
$a;
$show;
echo "<input type=text name=id value=$a$show>";
?>
อย่างนี้หรือเปล่าลองเอาไปใช้ดูนะจ้า
Date :
2011-04-06 08:47:30
By :
1122
$id="1";
$char=sprintf("%03d",$id);
echo "BD$char";
ผลลัพธ์
BD0001
Date :
2011-04-06 09:10:43
By :
nexoxtreme
แล้วถ้ารันรหัสแบบนี้อ่ะคับ
เช่น po-0103/11
01 คือ แฟ้มที่ 1 ของเดือนไม่ช่ายวันที่นะครับ กรอกข้อมูลครั้งนึงก็ 1 แฟ้ม
03 คือ เดือนมีนา
11 คือ ปี คศ.2011
จบเดือนมีนาคม สมมุติ 2003/11
ขึ้นเดือน 4 ต้องให้เปลี่ยนเป็น po-0104/11
Date :
2011-04-06 09:16:06
By :
touchjung080930
<?php
$po = 'PO-';
$datem = date('m');
$datey= date('y');
$id_max=$r[0]+1;
$text = str_pad($id_max, 2, "0", STR_PAD_LEFT);
$show=$text ;
$datey;
$datem;
$show;
$po;
echo "<input type=text name=nost value=$po$show$datem/$datey>";
?>
ผลที่ได้ PO-0104/11
น่าจะตรงนะ
Date :
2011-04-06 09:51:18
By :
nongking1
คุณ nongking ถ้าผมจะเก็บเข้าฐานข้อมูลนี่ จะต้องเก็บยังไงอ่ะครับ
เพราะตอนนี้ผมเก็บเป็น $sid ตัวเดียว
ถ้าผมจะทำแบบคุณนี่จะต้องเก็บตัวไหนบ้างอ่ะครับ
Date :
2011-04-06 10:35:35
By :
touchjung080930
ส่วนนี้เลยจ้าคุณก้อตั้งตัวแปลจาก nost เป็น sid
echo "<input type=text name=nost value=$po$show$datem/$datey>";
echo "<input type=text name=sid value=$po$show$datem/$datey>";
แล้วก้อบันทึกปกติเลยจ้า
Date :
2011-04-06 10:40:51
By :
nongking1
มันจะส่งข้อมูล ยังไงอ่ะครับ
เพราะตอนนี้ พอผมกด enter ไปแต่หน้าฐานข้อมูลยังเก็บเหมือนเดิมอ่ะครับ 1,2,3,4,5,6 ไปเรื่อยอ่ะครับ
พอกลับมารหัสก็เหมือนเดิม 0104/11
ยังงี้แสดงมันไม่ส่งค่าไปหรือป่าวครับ
Date :
2011-04-06 10:58:12
By :
touchjung080930
Add sid เข้าไปด้วยจ้า
ไม่ต้องตั้งในดาต้าให้มาน Auto Add เองก้อจะได้ตามที่เราต้องการ
แต่ถ้าให้มาน Auto มาก้อจะรัน 1....n ไปเรื่อยๆๆนะ
Date :
2011-04-06 11:07:08
By :
nongking1
แอตตรงไหนอ่ะครับ
ช่ายตัว $sid ยังงี้หรือป่าวอ่ะครับ
คือผมยังมองไม่ออกว่ามันจะเก็บค่ายังไง
Date :
2011-04-06 11:17:50
By :
touchjung080930
ตอนที่เขียนโค้ดให้ดูนะตัวแปลที่รับค่า PO-0104/11 ตอนที่เขียนให้เป็น text ชื่อว่า nost แต่ของคุณ เป็น sid
ก้อเหมือนทั่วไปแหละคือเอาตัวแปลที่กำหนดแล้วบันทึกลงฐานข้อมูลตามปกติเหมือนบันทึกข้อมูลทั่วไปเลยจ้า
ก้อจะได้ตามที่ต้องการแล้ว
Date :
2011-04-06 11:37:47
By :
nongking1
$sid = $_GET['sid'];
<?php
$sql = "select * from customers order by sid";
<?php echo $row['sid'] ?>
?>
ผมเขียนอย่างนี้อ่ะครับ แต่มันไม่ได้
Date :
2011-04-06 11:55:59
By :
touchjung080930
ก้อ Add อย่างนี้ดิจ้า
มานต้อง
$sid = $_POST['sid'];
$result = mysql_query("insert into customers (sid)
values('','$sid)");
ประมาณนี้นะจ้า
ก้อบันทึกเหมือนการบันทึกข้อมูลเราปกตินั้นแหละจ้า
Date :
2011-04-06 13:16:26
By :
nongking1
เปลี่ยนแล้วครับCode (PHP)
$sid = $_POST['sid'];
$result = mysql_query("insert into customers (sid)
values('','$sid)");
ไม่เห้นมันเก็บให้เลยอ่ะครับ ตัวเลขก็ยังรันเหมือนเดิม
ส่วนรหัส po3-0104/11 ก็ไม่รันต่อเลยอ่ะครับ
Date :
2011-04-06 13:43:51
By :
touchjung080930
ในดาต้าเบสตัวแปล sid ตั้งให้มาน Auto อยู่หรือเปล่า
ถ้าตั้งมานก้อจะบันทึกไม่ได้
หรือมัยวิธีอีกอย่างก้อตั้งตัวแปลใหม่เพือเก็บค่า po3-0104/11 ตัวนี้โดยเฉพาะเลยจ้า
ได้ผลงัยบอกด้วยนะ
Date :
2011-04-06 13:52:46
By :
nongking1
ผมแก้ Auto ออกแล้วนะครับ
มันขึ้นเป็น error เลยครับในหน้า add เหมือน PO3-0104/11 มันไม่ได้ถูกส่งข้อมูลไปอ่ะครับ
$sid=$po$show$datem/$datey; เขียนยังงี้เลยหรือป่าวครับ
หรือสร้างขึ้นมาใหม่เพิ่มมาอีก1 ตัวใหม่อ่ะครับ
Date :
2011-04-06 14:08:15
By :
touchjung080930
แก้จาก cid เป็น id ธรรมดาก่อนนะและก้อให้ในดาต้าเบส Auto เหมือนเดิม และก้อสร้าง cid ขึ้นมาใหม่แล้วคอยบันทึกลงดาต้า
การบันทึกก้อบันทึกลงปกติเลยจ้า
สรุปคือสร้างตัวแปลมารับ รหัสที่เราสร้างขึ้นมานะจ้า
อย่างนี้น่าจะง่ายกว่านะจ้า
ตอนที่ Edit ก้อนำรหัสตัวนี้มา Edit ถ้ามาการ Edit นะจ้า
Date :
2011-04-06 14:16:07
By :
nongking1
คือให้สร้างฐานข้อมูลเพิ่มมาตัวนึงคือ $cid เพื่อรับค่า
ส่วนอันเดิมให้เปลี่ยนเป็น id เฉยๆถูกป่ะครับ
แล้วงี้เขียนแบบนี้ป่ะครับ $sid=$po$show$datem/$datey;
Date :
2011-04-06 14:25:17
By :
touchjung080930
ใช่แล้วเข้าใจถูกแล้ว สู้ๆๆๆใกล้เสร็จแล้ว
Date :
2011-04-06 16:11:34
By :
nongking1
คุณ nongking ตอนนี้มัน error ไปเลยอ่ะครับ
แอตข้อมูลไม่ได้เลย
Date :
2011-04-06 16:31:08
By :
touchjung080930
ไม่ได้แก้ไรไม่ใช่หรือจ้า
แค่เพิ่มตัวแปลไม่น่านะจ้า
Date :
2011-04-06 17:12:44
By :
nongking1
โค๊ดตัวเก็บค่า sid นี่เขียนยังไงอ่ะครับ
แล้วต้องเขียนลงในหน้า add ถูกป่าวครับ
Date :
2011-04-06 17:21:37
By :
touchjung080930
สรุป มีคนตอบคำถามผมไหมครับเนี่ย ยังไม่รู้เรื่องเลยครับ
Date :
2011-04-07 09:35:04
By :
chonburi f.c
คนที่ตอยบก้อคุณ Nexoxtreme งัยจ้าไม่ใช่หรือจ้า
Date :
2011-04-07 09:56:17
By :
nongking1
ใช่แล้วหน้ส Add เลยจ้า
Date :
2011-04-07 09:56:46
By :
nongking1
แล้วตัวโค๊ดนี่เขียนยังไงอ่ะครับ
ผมเขียนยังงี้อ่ะครับ มันไม่ได้
id=$_POST['id'];
sid=$_POST['sid'];
ในหน้า กรอกข้อมูลที่ใส่โค๊ดคุณ nongking ไป โค๊ดมันส่งค่ามายังไงครับ ให้กับหน้า add
Date :
2011-04-07 10:05:55
By :
touchjung080930
ตอนนี้ติดที่ส่วนไหนหรือจ้า คุณ touch
Date :
2011-04-07 10:26:47
By :
nongking1
คือพอผมสร้าง sid ในฐานข้อมูลเพิ่มมา
แล้วในหน้า กรอกข้อมูล ช่อง echo เปลี่ยนเป็น sid
หน้า add ก็เพิ่ม $sid = $_POST['sid']
แต่พอรันโปรแกรม กรอกข้อมูลเส็ด มันก็จะส่งข้อมูลไปหน้า add แต่มันเหมือนจะไม่ส่งไป เพราะมันเขียน SQL ERROR
Date :
2011-04-07 11:18:21
By :
touchjung080930
ขอดูโค้ดหน้าฟอร์มและหน้า Add ดิจ้่่า
Date :
2011-04-07 11:42:44
By :
nongking1
Code form
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style1 {color: #FF0000}
-->
</style>
</head>
<body>
<form name="form1" method="post" action="add.php">
<p align="center">ใบส่งสินค้าชั่วคราว</p>
<p align="center">เลขที่่<?php
include ("connect.php");
$po = 'PO3-';
$datem = date('m');
$datey= date('y');
$sql="select * from customers order by id desc limit 0,1" ;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$id_max=$row[0]+1;
$text = str_pad($id_max, 2, "0", STR_PAD_LEFT);
$show=$text ;
$datey;
$datem;
$show;
$po;
echo "<input type=text name=cid value=$po$show$datem/$datey>";
?>
</p>
<p align="right">date
<select name="d">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="m">
<option value="01">มกราคม</option>
<option value="02">กุมภาพันธ์</option>
<option value="03">มีนาคม</option>
<option value="04">เมษายน</option>
<option value="05">พฤษภาคม</option>
<option value="06">มิถุนายน</option>
<option value="07">กรกฎาคม</option>
<option value="08">สิงหาคม</option>
<option value="09">กันยายน</option>
<option value="10">ตุลาคม </option>
<option value="11">พฤศจิกายน </option>
<option value="12">ธันวาคม </option>
</select>
<select name="y">
<option value="2005">2548</option>
<option value="2006">2549 </option>
<option value="2007">2550 </option>
<option value="2008">2551 </option>
<option value="2009">2552</option>
<option value="2010">2553</option>
<option value="2011">2554 </option>
<option value="2012">2555 </option>
<option value="2013">2556 </option>
</select>
<span class="style1">* </span></p>
<div align="right">
<p>
<select name="cus" onchange="form1.address.value=this.value">
<option value="-">-</option>
<option value="SP
823/1 ถนนสมเด็จพระเจ้าตากสิน แขวงบุคคโล เขตธนบุรี กทม.10600">SP</option>
<option value="3B GLOBAL
900/31 SV CITY OFFICE TOWER">3B GLOBAL</option>
<option value="JPN
202-202/1 หมู่ 2 ซ.สุขสวัสดิ์ 76 ต.บางจาก อ.ระประแดง จ.สมุทรปราการ10130">JPN</option>
</select>
<span class="style1">*</span> </p>
<p>
<textarea name="address" id="address" cols="45" rows="5"></textarea>
</p>
</div>
</div>
<p align="right"> </p>
<p> </p>
<p><tr>
<td colspan="2">
<div align="center">
<input name="add" type="submit" id="add2" value="add">
<input type="reset" name="Reset" value="Reset">
</div></td>
</tr> </p>
</form>
</body>
</html>
Code add
<?php
include ("connect.php");
$id = $_GET['id'];
$cid = $_POST['cid'];
$date = $_POST['y'].'-'.$_POST['m'].'-'.$_POST['d'];
$cus = $_POST['cus'];
$num = $_POST['num'];
$detail = $_POST['detail'];
$sum = $_POST['sum'];
$price = $_POST['price'];
$total = $_POST['total'];
$sql = "insert into customers values ('','$date','$cus','$num','$detail','$sum','$price','$total')";
mysql_query($sql) or die ("Insert Error !!!");
echo"<h3 aling = 'center'> save data ok </h3>";
echo"<center><a href='select.php'>Show detail</a></center>";
?>
Date :
2011-04-07 13:09:10
By :
touchjung080930
fromadd.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style1 {color: #FF0000}
-->
</style>
</head>
<body>
<form name="form1" method="post" action="add.php">
<p align="center">ใบส่งสินค้าชั่วคราว</p>
<p align="center">เลขที่่<?php
include("config.inc.php");
$po = 'PO3-';
$datem = date('m');
$datey= date('y');
$sql="select * from customers order by id desc limit 0,1" ;
$result=mysql_query($sql);
$row=mysql_fetch_array($result);
$id_max=$row[0]+1;
$text = str_pad($id_max, 2, "0", STR_PAD_LEFT);
$show=$text ;
$datey;
$datem;
$show;
$po;
echo "<input type=text name=cid value=$po$show$datem/$datey>";
?>
</p>
<p align="right">date
<select name="d">
<option value="01">1</option>
<option value="02">2</option>
<option value="03">3</option>
<option value="04">4</option>
<option value="05">5</option>
<option value="06">6</option>
<option value="07">7</option>
<option value="08">8</option>
<option value="09">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="m">
<option value="01">มกราคม</option>
<option value="02">กุมภาพันธ์</option>
<option value="03">มีนาคม</option>
<option value="04">เมษายน</option>
<option value="05">พฤษภาคม</option>
<option value="06">มิถุนายน</option>
<option value="07">กรกฎาคม</option>
<option value="08">สิงหาคม</option>
<option value="09">กันยายน</option>
<option value="10">ตุลาคม </option>
<option value="11">พฤศจิกายน </option>
<option value="12">ธันวาคม </option>
</select>
<select name="y">
<option value="2005">2548</option>
<option value="2006">2549 </option>
<option value="2007">2550 </option>
<option value="2008">2551 </option>
<option value="2009">2552</option>
<option value="2010">2553</option>
<option value="2011">2554 </option>
<option value="2012">2555 </option>
<option value="2013">2556 </option>
</select>
<span class="style1">* </span></p>
<div align="right">
<p>
<select name="cus" onchange="form1.address.value=this.value">
<option value="-">-</option>
<option value="SP
823/1 ถนนสมเด็จพระเจ้าตากสิน แขวงบุคคโล เขตธนบุรี กทม.10600">SP</option>
<option value="3B GLOBAL
900/31 SV CITY OFFICE TOWER">3B GLOBAL</option>
<option value="JPN
202-202/1 หมู่ 2 ซ.สุขสวัสดิ์ 76 ต.บางจาก อ.ระประแดง จ.สมุทรปราการ10130">JPN</option>
</select>
<span class="style1">*</span> </p>
<p>
<textarea name="address" id="address" cols="45" rows="5"></textarea>
</p>
</div>
</div>
<p align="right"> </p>
<p> </p>
<p><tr>
<td colspan="2">
<div align="center">
<input name="add" type="submit" id="add2" value="add">
<input type="reset" name="Reset" value="Reset">
</div></td>
</tr> </p>
</form>
</body>
</html>
add.php
<?php
include("config.inc.php");
$id = $_GET['id'];
$cid = $_POST['cid'];
$address = $_POST['address'];
$date = $_POST['y'].'-'.$_POST['m'].'-'.$_POST['d'];
$cus = $_POST['cus'];
$result = mysql_query("insert into customers (id,cid,date,cus,address)
values('','$cid','$date','$cus','$address')");
//$sql = "insert into customers values ('','$cid','$date','$cus','$num','$detail','$sum','$price','$total')";
//mysql_query($sql) or die ("Insert Error !!!");
echo"<h3 aling = 'center'> save data ok </h3>";
echo"<center><a href='select.php'>Show detail</a></center>";
?>
แก้ให้แล้วนะรันแล้วโอเค
นี้ดาต้าเบสนะ
Date :
2011-04-07 14:02:22
By :
nongking1
ถามถึงคุณ nongking ครับไม่ทราบว่า มี code แนะนำผมบางไหมครับ แล้วเวลาบันทึกเนี่ยมันจะรันรหัสเองไปเรื่อยๆรึป่าวครับ แล้วก็ db ต้องเซ็ตค่าเป็นอะไรครับ varhar หรืออะไร
Date :
2011-04-07 15:28:22
By :
chonburi f.c
ลองเช็คตามที่ให้ไปดูนะจ้าได้ผลงัยบอกด้วย
Date :
2011-04-07 15:47:26
By :
nongking1
โค้ดก้อแก้ให้แล้วนี้ลองรันดูนะ
Date :
2011-04-07 15:48:21
By :
nongking1
ขอบคุณ
คุณ nongking มากๆครับ
ขอถามเรื่องรหััสอีกนิดครับ ว่า
พอขึ้นเดือนถัดไป ตรงรหัส แฟ้มอ่ะครับ
มันจะเริ่มต้นที่ 01 ใหม่หรือป่าวครับ
Date :
2011-04-07 16:00:21
By :
touchjung080930
สุดยอดมากเลยนะครับ...
แนะนำหน่อยนะครับ..
ตรงที่ Gen Code น่าจะเขียนเป็น Function เก็บไว้เลยนะครับ
แนะนำอีกนิดนะครับน้องๆ อยากให้ลองเขียนกันในรูปแบบ OOP นะครับจะทำงานแก้ไขสะดวกและจะมองเป็นแบบ Object
ในอนาคตเค้าจะเป็น Object กันหมดแล้วนะครับต้องฝึกๆ เอาไว้นะ
Date :
2011-04-07 16:13:50
By :
dr.website
มานจะรนไปเรื่อยๆๆจ้า
แต่ว่าเดือนกับปีมานจะเปลียนตามเวลาของเครื่องจ้า
Date :
2011-04-07 16:14:11
By :
nongking1
แล้วถ้าเราจะให้มันกลับเป็น 01 ใหม่อ่ะครับ
เราต้องแก้ส่วนไหนเพิ่มหรือครับ
Date :
2011-04-07 16:20:54
By :
touchjung080930
Load balance : Server 03