|
|
|
ถ้าต้องการ INSERT 2 ข้อมูลในฟิวด์เดียวกันจะเขียน CODE ยังไงครับ |
|
|
|
|
|
|
|
ใน Record เดียวกันหรอครับ หรือว่าคนละ Record
|
ประวัติการแก้ไข 2011-08-11 04:07:16
|
|
|
|
Date :
2011-08-11 00:55:47 |
By :
tomrambo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
record เดียวกันครับ
|
|
|
|
|
Date :
2011-08-11 07:22:44 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ประมาณว่า มี selectbox ก็เก็บเข้าฟิวด์ etc และถ้าพิมพ์ในช่อง textbox ก็เก็ยใน etc เหมือนกันครับ
|
|
|
|
|
Date :
2011-08-11 08:20:46 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$field1 = $_POST["txt1"].$_POST["txt2"];
$strSQL ="INSERT INTO tale1";
$strSQL .="(field1)";
$strSQL .="VALUES ";
$strSQL .="('$field1')"
|
|
|
|
|
Date :
2011-08-11 08:58:13 |
By :
avsqlz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$all=$_POST["select_another"]."|".$send_id;
มันเข้า 2|6 3|1 ซึ่งมันไม่ตัดออกครับ
|
|
|
|
|
Date :
2011-08-11 09:11:56 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนเรียกมาใช้ค่อยตัดมันออกครับ ใช้
$etc = explode("|", $row['etc']);
echo $etc[0]; // คือค่าตัวหน้าครับ
echo $etc[1]; // คือค่าตัวหลัง
|
|
|
|
|
Date :
2011-08-11 09:27:26 |
By :
tomrambo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าพิมพ์ textbox มันจะไปเก็บอีกตารางนึงก่อนครับ แล้วส่ง id ของตารางนั้นมาเก็บที่ ฟิวด์ etc table1 แต่ถ้าเลือกจาก listmenu มันก็จะเอาค่า value มาใส่ที่ฟิวด์ etc table1 เลยครับ
ในส่วนของ listmenu ถ้าเลือกจากในนี้ มันจะส่ง value มาที่ etc table1 เลยครับ
<select name="select_another">
<input type="text" name="text_etc">
$send //ค่าจาก text_etc ที่ถูกเก็บอีกตารางนึงก่อน แล้วส่งมาในรูปแบบของ id
$all=$_POST["select_another"]."|".$send;
$keyword = explode("|", $all);
$strSQL ="INSERT INTO table1";
$strSQL .="(etc)";
$strSQL .="VALUES ";
$strSQL .="('".$keyword[0]."','".$keyword[0]."')";
แบบนี้ป่าวครับ
|
|
|
|
|
Date :
2011-08-11 09:53:04 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สรุปว่า ใน field etc นี่เก็บแค่ค่าเดียวใช่เปล่าครับ เก็บค่าจาก textbox หรือ listmenu อย่าใดอย่างนึง
if (empty($_POST["select_another"])) {
$all = $send;
}
else if (empty($_POST["text_etc"])) {
$all = $_POST["select_another"];
}
$strSQL ="INSERT INTO table1";
$strSQL .="(etc)";
$strSQL .="VALUES ";
$strSQL .="('$all')";
ไม่รู้ว่าผมเข้าใจถูกรึเปล่านะ นอนน้อยไปหน่อย มึนๆ
|
|
|
|
|
Date :
2011-08-11 10:15:27 |
By :
avsqlz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่คุณ avsqlz ทำโค๊ดมาให้ถูกแล้วครับ ขอบคุณทุกท่านที่มาช่วยนะครับ พอดีผมไปต่างจังหวัดไม่มีเน็ต เลยกลับมาลองวันนี้ แต่ว่าติดปัญหาตรงที่เมื่อเลือก listmenu มันก็จะทำ if นี้
if (empty($_POST["select_another"])) {
$all = $send;
}
แล้ว text_etc เป็นช่องว่าง มันจึงนำ text_etc ไปเก็บในฐานข้อมูลด้วยครับ เป็นช่องว่างเปล่า ซึ่งอันนี้จะแก้ยังไงเหรอครับ
|
|
|
|
|
Date :
2011-08-14 16:27:23 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากทราบว่า text_etc ทำไมไม่ได้ใส่ข้อมูลมันถึงนำไปเก็บที่ฐานข้อมูลครับ
|
|
|
|
|
Date :
2011-08-14 18:03:24 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
listmenu มี label และ value อะไรมั่งครับ
|
|
|
|
|
Date :
2011-08-15 08:58:02 |
By :
avsqlz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<select id="ddlanother" name="select_another"></select>
ก็คือถ้าไม่มีข้อมูลใน listmenu นี้ เราก็ไปพิมพ์ที่ test_etc ครับ จากนั้นในการเพิ่มครั้งต่อไปใน listmenu ก็จะมีให้เลือกในส่วนที่พิมพ์ไปตะกี้ครับ ไม่ต้องมากรอกอีก แต่ปัญหาก็คือเมื่อ text_etc เป็นช่องว่างมันก็เอาไปเก็บที่ฐานข้อมูลด้วยครับ และเวลามาเลือก listmenu ใหม่ มันก็จะมีช่องว่างครับ
|
|
|
|
|
Date :
2011-08-15 09:21:31 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าไม่มีการคียที่ text_etc
echo $send จะมีค่าเท่ากับอะไรครับ เป็น 0 หรือ ค่าว่าง
แล้วถ้ามีการคียที่ text_etc
$send จะมีค่าเท่ากับตัวเลข 1,2,3,4,5,6,7,8,N ใช่เปล่าครับ
|
|
|
|
|
Date :
2011-08-15 11:19:35 |
By :
avsqlz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าไม่มีการคีย์ที่ text_etc $sendจะเป็นค่าว่างครับ เพราะ text_etc จะไม่ส่งค่าไป
แต่ถ้ามีการคีย์ที่ text_etc มันจะส่งไปเก็บอีกตารางนึงก่อน จากนั้นจะส่งค่า $sendกับพร้อมค่าตัวเลขมาบันทึกใน table1
|
|
|
|
|
Date :
2011-08-15 13:51:26 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไม่อยากให้ค่าที่ไม่กรอกส่งไปอะคับ
|
|
|
|
|
Date :
2011-08-15 16:45:55 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก็ เอา ข้อ ความ สอง อัน มา รวมกัน ก่อน อาจะ ใช้ เว้น วรรค ช่วตรงกลาง
เช่น
Code (PHP)
$word1 = "บ้าน";
$word2 = "2ชั้น"
$mix ="$word1$word2";
$sql "INSEART INTO table1 ('field1') VALUE ('$mix') ";
|
|
|
|
|
Date :
2011-08-15 23:53:56 |
By :
Professer |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปัญหามันคือไม่ให้ถ้าไม่กรอกช่อง text_etc ก็ไม่ให้มันส่งไปเก็บในฐานข้อมูลครับ
|
|
|
|
|
Date :
2011-08-16 07:35:32 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ if เช็คครับ
if(!empty($text_etc)) {
// หากมีการคีย์ $text_etc มา ก็เขียนโค๊ด insert ลง table ตรงนี้ หากไม่มีการคีย์ข้อมูลมามันก็จะไม่ทำงานในส่วนนี้
}
|
|
|
|
|
Date :
2011-08-16 07:49:08 |
By :
tomrambo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แต่ถ้าเรากรอก text_etc ตาม if คุณ tOm มันจะไปเก็บอีกตาราง แล้วมันจะส่งไปเก็บ table1 ยังไงครับ
|
|
|
|
|
Date :
2011-08-16 10:46:17 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมว่า คุณเอาโค๊ดมาดูเต็มๆดีกว่า จะได้เห็นเป็นรูปธรรมมากขึ้น จะได้ตอบตรงจุดประสงค์ของคุณได้ชัดเจนด้วย
ตอนนี้ผมก็ยังพอเดาไม่ออกเลย ว่าคุณจะทำอะไร ยังไง แบบไหน
|
|
|
|
|
Date :
2011-08-16 21:11:52 |
By :
tomrambo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับผม ที่ผมไม่ได้ลงเต็มๆให้ดู เพราะว่ามันเยอะ เดี๋ยวตาลายกัน
จะอธิบายคร่าวๆอีกทีนะครับ ผมใช้คำพูดเรียบเรียงไม่ค่อยเก่งอาจจะงงหน่อยนะคับ แต่จะพยายาม
เริ่มแรกถ้ามี user มาเลือกข้อมูลที่ (Listmenu) name="select_another" ซึ่ง Listmenu ตัวนี้ข้อมูลดึงมาจากฐานข้อมูลที่ชื่อว่า another แต่ถ้าไม่มีข้อมูลที่ต้องการก็สามารถเพิ่มเองได้ที่ text_etc เมื่อกด Submit แล้วข้อมูลที่ text_etc จะไปเก็บที่ another แล้วส่ง primary key ที่เป็นตัวเลขมาเก็บยังตาราง detail ฉะนั้นเมื่อ user มาเลือกข้อมูลที่ Listmenu อีกครั้งก็จะมีข้อมูลที่กรอกใน text_etc ก่อนหน้านี้ โดยไม่ต้องมานั่งเพิ่มที่ text_etc อีก แต่ปัญหาคือเมื่อเลือกข้อมูลที่ Listmenu แล้วช่อง text_etc ก็จะว่างไม่มีข้อมูล และทำการบันทึกโดยการกด Submit ผลที่ได้คือ text_etc ที่เป็นช่องว่างมันไปเก็บที่ another และเมื่อ user มาเลือกข้อมูลที่ Listmenu ก็จะเห็นเป็นช่องว่าง พอจะเห็นภาพไหมครับ
ผมไม่ต้องการให้มันมีช่องว่าง หรือถ้า text_etc ไม่มีการกรอกข้อมูลก็ต้องไม่นำไปเก็บครับ หรือไม่อีกอย่างถ้า text_etc เป็นช่องว่างแล้วนำไปเก็บอยากให้สถานะ(text_enable ของ another)เป็น 'F' คือไม่เปิดใช้งานครับ โดยปกติผมสร้าง hidden field ไว้ให้ 'T'
Code (PHP)
$strSQL = "SELECT * FROM another";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL ="INSERT INTO another";
$strSQL .="(another_name,busi_no,bg_no,ser_no,Created,CreatedBy,CreatedTime,Enable)";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["text_etc"]."','".$_POST["select_busi"]."','".$_POST["select_bg"]."','".$_POST["select_service"]."','".$_POST["text_user_create"]."','".$_POST["text_date_create"]."','".$_POST["text_time_create"]."','".$_POST["text_enable"]."') ";
$objQuery = mssql_query($strSQL);
$strSQL = "SELECT @@IDENTITY AS send FROM another;";
$objQuery = mssql_query($strSQL);
$rows = mssql_fetch_assoc($objQuery);
$send = $rows["send"];
if (empty($_POST["select_another"]))
{
$all = $send;
}
else if (empty($_POST["text_etc"]))
{
$all = $_POST["select_another"];
}
$strSQL = "SELECT * FROM detail";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
$strSQL ="INSERT INTO detail";
$strSQL .="(ThaiName,EngName,word,type,orther,Address,province,amphur,district,zip,mail,web,hotline,busi,bg,service,etc,detail,price,branch,commonday,holiday,note,town1,town2,town3,town4,rate,Created,CreatedBy,CreatedTime,IsActive,Enable,IsSecret)";
$strSQL .="VALUES ";
$strSQL .="('".$_POST["text_name"]."','".$_POST["text_name2"]."','".$_POST["text_word"]."','".$_POST["select_type"]."','".$_POST["text_orther"]."','".$_POST["Address"]."','".$_POST["select_province"]."','".$_POST["select_amphur"]."','".$_POST["select_district"]."','".$_POST["text_zip"]."','".$_POST["text_mail"]."','".$_POST["text_web"]."','".$_POST["text_hotline"]."','".$_POST["select_busi"]."','".$_POST["select_bg"]."','".$_POST["select_service"]."','".$all."','".$_POST["area_detail"]."','".$_POST["text_price"]."','".$_POST["area_branch"]."','".$_POST["text_commonday"]."','".$_POST["text_holiday"]."','".$_POST["area_note"]."','".$_POST["text_town1"]."','".$_POST["text_town2"]."','".$_POST["text_town3"]."','".$_POST["text_town4"]."','".$_POST["select_rate"]."','".$_POST["text_user_create"]."','".$_POST["text_date_create"]."','".$_POST["text_time_create"]."','".$_POST["IsActive"]."','".$_POST["text_enable"]."','".$_POST["IsSecret"]."') ";
$objQuery = mssql_query($strSQL);
|
|
|
|
|
Date :
2011-08-16 21:37:27 |
By :
Nos1001 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|