รวบกวนช่วยดู โค้ดเพิ่มแบบมีเงื่อนไข เมื่อเพิ่มข้อมูลสถานะจะเป็น y ค่ะ
รวบกวนช่วยดู โค้ดเพิ่มแบบมีเงื่อนไข(2ตาราง contract กับ append) เมื่อเพิ่มข้อมูลสถานะเอกสาร ฟิล show จะเป็น y ค่ะ
โค้ดตอนนี้เป็นแบบนี้อยู่ค่ะ ไม่ทราบว่าต้องเพิ่มโค้ดเงื่อนไขตรงไหนคะ??
Code (PHP)
<?php
include("db/connect.php");//เรียกใช้ไฟล์connect.php
$str="INSERT INTO contract (contract_id, contract_num , date_con_up, contract_name , contract_file , con_description , p_id)";
$str.=" VALUE ('$contract_id ', '$contract_num ', ' $date_con_up ', '$contract_name ', ' $contract_file ', '$con_description ', '$p_id')";
mysql_query($str);
$contract_id = mysql_insert_id();//คำสั่งให้ FK อ้างถึงกันในกรณี id เป็น Auto
$str2="INSERT INTO append (append_name ,append_file ,date_app_up ,p_id ,contract_id) ";
$str2.="VALUES ('$append_name ', '$append_file ', '$date_app_up ', '$p_id' , '$contract_id ')";
mysql_query($str2);
echo "<script type='text/javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";
echo "<meta http-equiv ='refresh'content='0;URL=show_contract.php'>";
?>
Tag : PHP, MySQL
Date :
2017-02-21 11:46:22
By :
nachon
View :
1009
Reply :
18
ไม่ทราบว่าฟิลด์ show อยู่ที่ตารางไหนครับ
Date :
2017-02-21 12:50:03
By :
tomrambo
<?php
include("db/connect.php");//เรียกใช้ไฟล์connect.php
$str="INSERT INTO contract (contract_id, contract_num , date_con_up, contract_name , contract_file , con_description , p_id, show)";
$str.=" VALUE ('$contract_id ', '$contract_num ', ' $date_con_up ', '$contract_name ', ' $contract_file ', '$con_description ', '$p_id', 'y')";
mysql_query($str);
$contract_id = mysql_insert_id();//คำสั่งให้ FK อ้างถึงกันในกรณี id เป็น Auto
$str2="INSERT INTO append (append_name ,append_file ,date_app_up ,p_id ,contract_id, show) ";
$str2.="VALUES ('$append_name ', '$append_file ', '$date_app_up ', '$p_id' , '$contract_id ', 'y')";
mysql_query($str2);
echo "<script type='text/javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";
echo "<meta http-equiv ='refresh'content='0;URL=show_contract.php'>";
?>
Date :
2017-02-21 13:06:35
By :
tomrambo
ลองดูใหม่ครับ
<?php
include("db/connect.php");//เรียกใช้ไฟล์connect.php
mysql_query("START TRANSACTION");
$str = "INSERT INTO contract (contract_id, contract_num , date_con_up, contract_name, contract_file, con_description, p_id, show)";
$str .= " VALUES ('".$contract_id."', '".$contract_num."', '".$date_con_up."', '".$contract_name."', '".$contract_fil."', '".$con_description."', '".$p_id."', 'y')";
$query1 = mysql_query($str) or die(mysql_error()." ".$str);
$contract_id = mysql_insert_id();//คำสั่งให้ FK อ้างถึงกันในกรณี id เป็น Auto
$str2 = "INSERT INTO append (append_name, append_file, date_app_up, p_id, contract_id, show)";
$str2 .= " VALUES ('".$append_name."', '".$append_file."', '".$date_app_up."', '".$p_id."', '".$contract_id."', 'y')";
$query2 = mysql_query($str2) or die(mysql_error()." ".$str2);
if(!$query1 || !!$query2){
mysql_query("ROLLBACK");
echo "Insert ข้อมูลล้มเหลว";
} else {
mysql_query("COMMIT");
echo "<script type='text/javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";
echo "<meta http-equiv ='refresh'content='0;URL=show_contract.php'>";
}
?>
Date :
2017-02-21 13:49:50
By :
tomrambo
ตอบความคิดเห็นที่ : 7 เขียนโดย : tomrambo เมื่อวันที่ 2017-02-21 13:49:50
รายละเอียดของการตอบ ::
มันแจ้ง error ค่ะ
Notice: Undefined variable: contract_id in C:\AppServ\www\systemdoc\check_con.php on line 6
Notice: Undefined variable: contract_file in C:\AppServ\www\systemdoc\check_con.php on line 6
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show) VALUES ('', '111', '2017-02-21', 'zzz', '', 'zzz', '1', 'y')' at line 1 INSERT INTO contract (contract_id, contract_num , date_con_up, contract_name, contract_file, con_description, p_id, show) VALUES ('', '111', '2017-02-21', 'zzz', '', 'zzz', '1', 'y')
Date :
2017-02-21 13:53:50
By :
nachon
contract_id เป็น PK ใช่มั๊ยครับ งั้นต้องเอาออก
<?php
include("db/connect.php");//เรียกใช้ไฟล์connect.php
mysql_query("START TRANSACTION");
$str = "INSERT INTO contract (contract_num, date_con_up, contract_name, contract_file, con_description, p_id, show)";
$str .= " VALUES ('".$contract_num."', '".$date_con_up."', '".$contract_name."', '".$contract_file."', '".$con_description."', '".$p_id."', 'y')";
$query1 = mysql_query($str) or die(mysql_error()." ".$str);
$contract_id = mysql_insert_id();//คำสั่งให้ FK อ้างถึงกันในกรณี id เป็น Auto
$str2 = "INSERT INTO append (append_name, append_file, date_app_up, p_id, contract_id, show)";
$str2 .= " VALUES ('".$append_name."', '".$append_file."', '".$date_app_up."', '".$p_id."', '".$contract_id."', 'y')";
$query2 = mysql_query($str2) or die(mysql_error()." ".$str2);
if(!$query1 || !!$query2){
mysql_query("ROLLBACK");
echo "Insert ข้อมูลล้มเหลว";
} else {
mysql_query("COMMIT");
echo "<script type='text/javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";
echo "<meta http-equiv ='refresh'content='0;URL=show_contract.php'>";
}
?>
Date :
2017-02-21 14:03:04
By :
tomrambo
ตอบความคิดเห็นที่ : 9 เขียนโดย : tomrambo เมื่อวันที่ 2017-02-21 14:03:04
รายละเอียดของการตอบ ::
contract_id เป็น PK ของตาราง contract ค่ะ
มันแจ้ง error แบบนี้ค่ะ
Notice: Undefined variable: contract_file in C:\AppServ\www\systemdoc\check_con.php on line 7
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show) VALUES ('111', '2017-02-21', 'zzz', '', 'zzz', '1', 'y')' at line 1 INSERT INTO contract (contract_num, date_con_up, contract_name, contract_file, con_description, p_id, show) VALUES ('111', '2017-02-21', 'zzz', '', 'zzz', '1', 'y')
Date :
2017-02-21 14:26:54
By :
nachon
ลองแบบนี้ผ่านมั๊ยครับ
<?php
include("db/connect.php");//เรียกใช้ไฟล์connect.php
mysql_query("START TRANSACTION");
$str = "INSERT INTO contract (contract_num, date_con_up, contract_name, contract_file, con_description, p_id, show)";
$str .= " VALUES ('".$contract_num."', '".$date_con_up."', '".$contract_name."', 'test', '".$con_description."', '".$p_id."', 'y')";
$query1 = mysql_query($str) or die(mysql_error()." ".$str);
$contract_id = mysql_insert_id();//คำสั่งให้ FK อ้างถึงกันในกรณี id เป็น Auto
$str2 = "INSERT INTO append (append_name, append_file, date_app_up, p_id, contract_id, show)";
$str2 .= " VALUES ('".$append_name."', '".$append_file."', '".$date_app_up."', '".$p_id."', '".$contract_id."', 'y')";
$query2 = mysql_query($str2) or die(mysql_error()." ".$str2);
if(!$query1 || !!$query2){
mysql_query("ROLLBACK");
echo "Insert ข้อมูลล้มเหลว";
} else {
mysql_query("COMMIT");
echo "<script type='text/javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";
echo "<meta http-equiv ='refresh'content='0;URL=show_contract.php'>";
}
?>
Date :
2017-02-21 14:37:20
By :
tomrambo
ตอบความคิดเห็นที่ : 11 เขียนโดย : tomrambo เมื่อวันที่ 2017-02-21 14:37:20
รายละเอียดของการตอบ ::
รอบนี้มันขึ้นแบบนี้ค่ะ
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show) VALUES ('222', '2017-02-21', 'Test123', 'test', 'โหลๆๆ เทส' at line 1 INSERT INTO contract (contract_num, date_con_up, contract_name, contract_file, con_description, p_id, show) VALUES ('222', '2017-02-21', 'Test123', 'test', 'โหลๆๆ เทสๆๆ', '1', 'y')
Date :
2017-02-21 14:39:31
By :
nachon
ลองแบบนี้ดูได้เปล่าครับ
<?php
include("db/connect.php");//เรียกใช้ไฟล์connect.php
mysql_query("START TRANSACTION");
$str = "INSERT INTO contract (`contract_num`, `date_con_up`, `contract_name`, `contract_file`, `con_description`, `p_id`, `show`)";
$str .= " VALUES ('".$contract_num."', '".$date_con_up."', '".$contract_name."', 'test', '".$con_description."', '".$p_id."', 'y')";
$query1 = mysql_query($str) or die(mysql_error()." ".$str);
$contract_id = mysql_insert_id();//คำสั่งให้ FK อ้างถึงกันในกรณี id เป็น Auto
$str2 = "INSERT INTO append (`append_name`, `append_file`, `date_app_up`, `p_id`, `contract_id`, `show`)";
$str2 .= " VALUES ('".$append_name."', '".$append_file."', '".$date_app_up."', '".$p_id."', '".$contract_id."', 'y')";
$query2 = mysql_query($str2) or die(mysql_error()." ".$str2);
if(!$query1 || !!$query2){
mysql_query("ROLLBACK");
echo "Insert ข้อมูลล้มเหลว";
} else {
mysql_query("COMMIT");
echo "<script type='text/javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";
echo "<meta http-equiv ='refresh'content='0;URL=show_contract.php'>";
}
?>
Date :
2017-02-21 15:03:05
By :
tomrambo
ตอบความคิดเห็นที่ : 15 เขียนโดย : tomrambo เมื่อวันที่ 2017-02-21 15:16:05
รายละเอียดของการตอบ ::
ได้แล้วค่ะ ลองเขียนแบบนี้ไปค่ะ ใช่ได้เหมือนกันใช่ไหมคะ??
Code (PHP)
<?php
include("db/connect.php");//เรียกใช้ไฟล์connect.php
$str="INSERT INTO contract (contract_id, contract_num , date_con_up, contract_name , contract_file , con_description , p_id, `show`)";
$str.=" VALUE ('$contract_id ', '$contract_num ', ' $date_con_up ', '$contract_name ', ' $contract_file ', '$con_description ', '$p_id', 'y')";
mysql_query($str);
$contract_id = mysql_insert_id();//คำสั่งให้ FK อ้างถึงกันในกรณี id เป็น Auto
$str2="INSERT INTO append (append_name ,append_file ,date_app_up ,p_id ,contract_id, `show`) ";
$str2.="VALUES ('$append_name ', '$append_file ', '$date_app_up ', '$p_id' , '$contract_id', 'y')";
mysql_query($str2);
echo "<script type='text/javascript'>alert('บันทึกข้อมูลเรียบร้อยแล้ว')</script>";
echo "<meta http-equiv ='refresh'content='0;URL=show_contract.php'>";
?>
Date :
2017-02-21 15:19:55
By :
nachon
ใช้ได้มันก็ใช้ได้ครับ แต่ที่เขียนแบบผมเขียน ป้องกันการ Error ระหว่าง Process น่ะครับ ถ้าเกิด Error mysql จะ cancel transaction
ทั้งหมดเลยครับ ถ้าจะรัดกุมก็ควรจะเขียนแบบผมนะครับ ป้องกันการผิดพลาดครับ
Date :
2017-02-21 15:26:59
By :
tomrambo
Load balance : Server 01