|
|
|
จะแอดไอดีของตารางหนึ่ง ไปอีกตารางหนึ่งแต่ให้เพิ่มแบบรันออโต้ |
|
|
|
|
|
|
|
form.php
Code (PHP)
<select id="id1" onchange="selOption($('#id1'),$('#id2'));">
<?
$select=mysql_query("SELECT * FROM table1 ORDER BY id asc") or die (mysql_error());
while($tb1=mysql_fetch_array($select)){
?>
<option value="<?=$tb1['id'];?>"><?=$tb1['id'];?></option>
<? } ?>
</select>
<input type="text" id="id2" value="" />
<script language="javascript" src="module/inc/scripts/jquery-1.8.1.min.js"></script>
<script>
// ส่งค่า post ajax&jquery โดยส่งค่า id1 ไปทำการ select ที่ไฟล์ check.php
function selOption(id1,id2){
$.ajax({url:"check.php",
async:false,
cache:false,
global:false,
type:'POST',
data:'id1='+id1.val(),
dataType:"html",
success: function(result){
id2.val(result);
}
});
}
</script>
check.php
Code (PHP)
<?
// รับค่า id1 มาทำการหาค่าล่าสุด 1 ตำแหน่งเท่านั้น
$id1=$_POST['id1'];
$select=mysql_query("SELECT * FROM table2 WHERE id1='".$id1."' ORDER BY id2 DESC LIMIT 1") or die (mysql_error());
$tb2=mysql_fetch_array($select);
$num=mysql_num_rows($select);
if($num == 0){ //ถ้าไม่มีให้ สร้าง num ขึ้นมาใหม่
echo $num=$id1."01";
}else{ // ถ้าไม่ใช่ให้ +1
echo $num=$tb2['id2']+1;
}
?>
ได้ตามเงื่อนไขแล้วค่อย insert ตามปกติ ลอง apply ดูครับ
|
ประวัติการแก้ไข 2013-02-26 17:30:28 2013-02-26 17:31:40
|
|
|
|
Date :
2013-02-26 17:29:47 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณค่ะ เดี๋ยวจะลองทำดู
แต่ถ้าไม่ใช้ jquery ล่ะค่ะ
|
|
|
|
|
Date :
2013-02-26 17:53:10 |
By :
sacaney |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอให้แนวคิดดีกว่าครับ
ให้ตาราง 1 มีอีกฟิลด์นึง สมมติชื่อว่า auto_number
แล้วเวลา INSERT ตาราง 2 เนี่ย ให้ SELECT auto_number จากตาราง 1 มาเป็นค่าที่จะ INSERT
และใช้ CONCAT() กับ LPAD() ช่วยจัดรูปแบบ
โดย LPAD() จะช่วยทำเลข 1 ให้เป็น 0001 อะไรประมาณนี้
ส่วน CONCAT() จะเชื่อม id2 กับ auto_number เข้าด้วยกันเป็น 1010001
Code (SQL)
// สมมติว่า $id1 คือ id1 ของตาราง 1
// สมมติว่า $data1 คือ data1 ของตาราง 2
mysql_query("
INSERT INTO `table2`
(`id1`, `id2`, `data1`)
VALUES
(
'$id1',
(SELECT CONCAT(`id2`, LPAD(`auto_number`, 4, '0')) FROM `table1` WHERE `id1` = '$id1'),
'$data1'
)
");
หลังจากนั้นก็ UPDATE ตาราง 1
mysql_query("UPDATE `table1` SET `auto_number` = `auto_number` + 1 WHERE `id` = '$id1'");
|
|
|
|
|
Date :
2013-02-26 18:21:23 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|