|
|
|
ถ้าต้องการ insert ข้อมูลบุคคล คนเดียวกัน แต่หลายProduct และ แยก Record ออกมาเขียนโค๊ดยังไงครับ (มีรูป) |
|
|
|
|
|
|
|
Code (PHP)
//ครั้งที่ 1
$strSQL1 = "INSERT INTO tb_product ";
$strSQL1 .="(name, product) VALUES ('$name', '$ค่าเช็คbox1')";
$objQuery1 = mysql_query($strSQL1);
//ครั้งที่ 2
$strSQL2 = "INSERT INTO tb_product ";
$strSQL2 .="(name, product) VALUES ('$name', '$ค่าเช็คbox2')";
$objQuery2 = mysql_query($strSQL2);
//ครั้งที่ 3
$strSQL3 = "INSERT INTO tb_product ";
$strSQL3.="(name, product) VALUES ('$name', '$ค่าเช็คbox3')";
$objQuery3 = mysql_query($strSQL3);
จับใส่ฐานข้อมูล 3 ครั้งแยกกัน แบบนี้ได้หรือเปล่าไม่แน่ใจ ลองดูครับ
|
|
|
|
|
Date :
2012-08-05 10:09:16 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังไม่ได้อะครับ เพราะว่าถ้าเลือกแค่ 1-2 อัน มันจะมี Record โปรดักว่าง อีกอันครับ
frm1
<!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" />
<title>Untitled Document</title>
</head>
<body>
<form action="Q&A_071_1.php" method="post" name="frm1" id="frm1">
<input name="no" type="hidden" value="" />
<label>
<input type="text" name="name" id="name" />
</label>
<br/>
<label><input type="checkbox" name="fav1" value="CTB">CTB</label><br/>
<label><input type="checkbox" name="fav2" value="SCB">SCB</label><br/>
<label><input type="checkbox" name="fav3" value="BAY">BAY</label><br/>
<input name="" type="submit" value="Submit" />
</form>
</body>
</html>
frm2
<?
$link = mysql_connect("localhost" , "root", "1234");
mysql_select_db("school") ;
mysql_query("SET NAMES TIS620"); // แก้ภาษาไทน ใน mysql
//$set_fav = implode("-" , $_POST[fav]); // imolode การคั่นด้วยสัญลักษณ์
//$result=mysql_query("Insert into tblmember (no, name, favorite) values('$_POST[no]', '$_POST[name]', '$_POST[fav]'), ");
//ครั้งที่ 1
$strSQL1 = "INSERT INTO tblmember ";
$strSQL1 .="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav1]')";
$result = mysql_query($strSQL1);
//ครั้งที่ 2
$strSQL2 = "INSERT INTO tblmember ";
$strSQL2 .="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav2]')";
$result = mysql_query($strSQL2);
//ครั้งที่ 3
$strSQL3 = "INSERT INTO tblmember ";
$strSQL3.="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav3]')";
$result = mysql_query($strSQL3);
if ($result) {
echo "บันทึกข้อมูลเรียบร้อยแล้ว ". "<br/>";
} else {
echo "ไม่สามารถบันทึกข้อมูลได้";
}
?>
|
|
|
|
|
Date :
2012-08-05 11:08:17 |
By :
vinaish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองทำเป็น array วนสร้าง Query ดูครับ แต่ยังไม่ได้ลองลง BD ^^
Code (From)
<!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" />
<title>Untitled Document</title>
</head>
<body>
<form action="get.php" method="post" name="frm1" id="frm1">
<input name="no" type="hidden" value="" />
<label>
<input type="text" name="name" id="name" />
</label>
<br/>
<label><input type="checkbox" name="fav[]" value="CTB">CTB</label><br/>
<label><input type="checkbox" name="fav[]" value="SCB">SCB</label><br/>
<label><input type="checkbox" name="fav[]" value="BAY">BAY</label><br/>
<input name="" type="submit" value="Submit" />
</form>
</body>
</html>
Code (Action)
<!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" />
<title>Untitled Document</title>
</head>
<body>
<?
$dataset = array();
$dataset=$_POST['fav'];
$name = $_POST['name'];
$query="INSERT INTO tblmember(name, favorite) VALUES ";
if(count($dataset>0)){
for($i = 0 ; $i < count($dataset);$i++){
$query.="($name,'".$dataset[$i]."')";
if ($i+1 < count($dataset)){
$query.= ",";
}
next($dataset);
}
//mysql_query($query,$conn);
echo $query;
}
?>
</body>
</html>
|
|
|
|
|
Date :
2012-08-05 11:39:12 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองแล้ว มันไม่เข้า database ครับ รบกวนด้วยนะครับ
ขอบคุณครับ
|
|
|
|
|
Date :
2012-08-05 12:38:29 |
By :
vinaish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองทำวิธีไหนก็ได้ถ้าสะดวก
แต่ขอเสริมของผมนิดนึงนะ อิอิ
ก็เอา if มาช่วย ถ้ามีค่าเช็คบ็อคมาก็เรียกบันทึกถ้าไม่มีค่าก็ข้ามไป
ตรงนี้จะเขียนยังไง ลองเขียนดูนะครับ if ง่าย ๆ
|
|
|
|
|
Date :
2012-08-05 13:47:22 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
$link = mysql_connect("localhost" , "root", "1234");
mysql_select_db("school") ;
mysql_query("SET NAMES TIS620"); // แก้ภาษาไทน ใน mysql
//$set_fav = implode("-" , $_POST[fav]); // imolode การคั่นด้วยสัญลักษณ์
//$result=mysql_query("Insert into tblmember (no, name, favorite) values('$_POST[no]', '$_POST[name]', '$_POST[fav]'), ");
//ครั้งที่ 1
if(fav1==""){ //ถ้า fav1 เป็นค่าว่างก็ไม่เกิดอะไรถ้า ไม่ว่างก็ให้มัน insert
}else{
$strSQL1 = "INSERT INTO tblmember ";
$strSQL1 .="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav1]')";
$result = mysql_query($strSQL1);
}
//ครั้งที่ 2
$strSQL2 = "INSERT INTO tblmember ";
$strSQL2 .="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav2]')";
$result = mysql_query($strSQL2);
//ครั้งที่ 3
$strSQL3 = "INSERT INTO tblmember ";
$strSQL3.="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav3]')";
$result = mysql_query($strSQL3);
if ($result) {
echo "บันทึกข้อมูลเรียบร้อยแล้ว ". "<br/>";
} else {
echo "ไม่สามารถบันทึกข้อมูลได้";
}
?>
|
|
|
|
|
Date :
2012-08-05 14:23:07 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ยังเหมือนเดิมครับ รบกวนช่วยดูอีกทีได้ไหมครับ ขอบคุณครับ
|
|
|
|
|
Date :
2012-08-05 15:12:30 |
By :
vinaish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณก็เอา if(fav1=="") ไปลองประยุกต์เพิ่มดูในครั้งที่ 2 และ 3 นะครับ
ตัวเลขมันก็มีบอก fav1 ก็ใช้กับครั้งที่ 1
ถ้าจะใช้กับครั้งที่ 2 และ 3 ต้องเปลี่ยนอะไร
เพิ่มตรงไหน ลองเพิ่มลองพิมพ์หรือยังครับ หรือว่าแค่ได้ Code ที่ผมให้ก็ Copy วาง อย่างเดียว...
แต่ถ้าลองแล้วได้แค่ไหนก็เอา Code มาดูกัน มีคนเก่ง ๆ อีกหลายคนรอแนะนำครับ
แล้วจากตัวอย่างคุณลองเลือก product ไหนบ้าง แล้ว code เป็นแบบไหน ต้องเอามาโชว์ครับ คนช่วยจะได้ต่อถูก
|
ประวัติการแก้ไข 2012-08-05 15:50:31
|
|
|
|
Date :
2012-08-05 15:48:42 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
โค๊ดที่ผมแก้แล้ว ครับมันก็ยังไม่ได้ อะครับ
Code (PHP)
<?
$link = mysql_connect("localhost" , "root", "1234");
mysql_select_db("school") ;
mysql_query("SET NAMES TIS620"); // แก้ภาษาไทน ใน mysql
//$set_fav = implode("-" , $_POST[fav]); // imolode การคั่นด้วยสัญลักษณ์
//$result=mysql_query("Insert into tblmember (no, name, favorite) values('$_POST[no]', '$_POST[name]', '$_POST[fav]'), ");
//ครั้งที่ 1
if($_POST[fav1]==" "){ //ถ้า fav1 เป็นค่าว่างก็ไม่เกิดอะไรถ้า ไม่ว่างก็ให้มัน insert
}else{
$strSQL1 = "INSERT INTO tblmember ";
$strSQL1 .="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav1]')";
$result = mysql_query($strSQL1);
}
//ครั้งที่ 2
if($_POST[fav2]==" "){
}else{
$strSQL2 = "INSERT INTO tblmember ";
$strSQL2 .="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav2]')";
$result = mysql_query($strSQL2);
}
//ครั้งที่ 3
if($_POST[fav3]==" "){
}else{
$strSQL3 = "INSERT INTO tblmember ";
$strSQL3.="(name, favorite) VALUES ('$_POST[name]', '$_POST[fav3]')";
$result = mysql_query($strSQL3);
}
if ($result) {
echo "บันทึกข้อมูลเรียบร้อยแล้ว ". "<br/>";
} else {
echo "ไม่สามารถบันทึกข้อมูลได้";
}
?>
|
ประวัติการแก้ไข 2012-08-05 17:43:07
|
|
|
|
Date :
2012-08-05 17:42:15 |
By :
vinaish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยน Action ดูครับ
Code (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" />
<title>Untitled Document</title>
</head>
<body>
<?
$dataset = array();
$dataset=$_POST['fav'];
$name = $_POST['name'];
if(count($dataset>0)){//ตรวจสอบค่าว่าง
for($i = 0 ; $i < count($dataset);$i++){
$query="INSERT INTO tblmember(name, favorite) VALUES ";
$query.="($name,'".$dataset[$i]."')";
next($dataset);
echo $query."<br>";
//mysql_query($query,$conn);//บันทึกลง DB
}
}
?>
</body>
</html>
|
|
|
|
|
Date :
2012-08-05 18:02:12 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มัน echo ออกมาได้ครับ แต่มันไม่เข้า database เลยครับ
รบกวนช่วยดูให้อีกทีหน่อยนะครับ
ขอบคุณครับ
|
|
|
|
|
Date :
2012-08-05 19:18:18 |
By :
vinaish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลืม 'vinish' ซิงเกิ้ลโควต
Code (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" />
<title>Untitled Document</title>
</head>
<body>
<?
$dataset = array();
$dataset=$_POST['fav'];
$name = $_POST['name'];
if(count($dataset>0)){//ตรวจสอบค่าว่าง
for($i = 0 ; $i < count($dataset);$i++){
$query="INSERT INTO tblmember(name, favorite) VALUES ";
$query.="('$name','".$dataset[$i]."')";
next($dataset);
echo $query."<br>";
//mysql_query($query,$conn);//บันทึกลง DB
}
}
?>
</body>
</html>
|
|
|
|
|
Date :
2012-08-05 19:41:14 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ตามที่คุณ krungsri ขอบคุณทุกท่านมากเลยนะครับ
ขอบคุณครับ
Code (PHP)
<?
$link = mysql_connect("localhost" , "root", "1234");
mysql_select_db("school") ;
mysql_query("SET NAMES TIS620");
$dataset = array();
$dataset=$_POST['fav'];
$name = $_POST['name'];
if(count($dataset>0)){ //ตรวจสอบค่าว่าง
for($i = 0 ; $i < count($dataset);$i++){
$query="INSERT INTO tblmember(name, favorite) VALUES ";
$query.="('$name','".$dataset[$i]."')";
next($dataset);
echo $query."<br>";
mysql_query($query); //บันทึกลง DB
}
}
?>
|
|
|
|
|
Date :
2012-08-05 19:56:45 |
By :
vinaish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนช่วยอ่านแปลโค๊ดหน่อยได้ไหมครับ จะได้เป็นความรู้ไว้ครับ ขอบคุณครับ
if(count($dataset>0)){
for($i = 0 ; $i < count($dataset);$i++){
$query="INSERT INTO tblmember(name, favorite) VALUES ";
$query.="('$name','".$dataset[$i]."')";
next($dataset);
echo $query."<br>";
mysql_query($query);
|
|
|
|
|
Date :
2012-08-05 19:59:51 |
By :
vinaish |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ในส่วนของ if เป็นการตรวจสอบดูว่ามีค่าใน array หรือเปล่า โดยการ Count
ถ้ามีก็ให้มาวนลูป for เพื่อดึงค่าใน array ออกมาสร้าง query โดย array จะเริ่มที่ 0
ส่วน next($dataset); จะมาหรือไม่มีก็ได้เป็นตัวเลื่อนคล้ายๆกับ Pointer มั้งถ้าเดาไม่ผิด
อาจไม่ต้องใช้ก็ได้ เพราะ มี $dataset[$i] ซึ่งจะเป็น Key ของ array เช่น
Array ( [0] => CTB [1] => SCB [2] => BAY ) ลูปก็จะวนเอาค่าของ array ออกมาโดยระบุตำแหน่งจาก [key]
มันก็จะวนไปจนครบจำนวบขอมูลใน array ก็จะออกมาเป็นเช่นนี้
INSERT INTO tblmember(name, favorite) VALUES (A,'CTB')
INSERT INTO tblmember(name, favorite) VALUES (A,'SCB')
INSERT INTO tblmember(name, favorite) VALUES (A,'BAY')
|
|
|
|
|
Date :
2012-08-05 20:16:08 |
By :
Krungsri |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|