|
|
|
Android ใครทราบช่วยบอกทีครับ บันทึกข้อมูล 2 ตาราง android (รีบส่งอาจารย์ครับ) |
|
|
|
|
|
|
|
ผมสร้าง 2 ตาราง เพื่อบันทึกข้อมูล ครับ
โดยประยุกจากบทความนี้ https://www.thaicreate.com/mobile/android-insert-data-to-server-via-web-service.html แต่พอเวลากดบันทึกแล้ว มันจะขึ้นว่า unknow status ทั้งที่ผมก็ใส่ตรงกับใน php
ช่วยหน่อยนะครับ (รีบส่งงานอาจารย์อ่ะครับ TT)
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","12345");
$objDB = mysql_select_db("db_conn");
$strpnt_comm_name = $_POST["spnt_comm_name"];
$strpnt_family_name = $_POST["spnt_family_name"];
$strpnt_sci_name = $_POST["spnt_sci_name"];
$strpnt_vernac_name = $_POST["spnt_vernac_name"];
$strpnt_synonym_name = $_POST["spnt_synonym_name"];
$strpnt_info=$_POST["spnt_info"];
$strpnt_benefit = $_POST["spnt_benefit"];
$strpnt_reference = $_POST["spnt_reference"];
$strstat_verify = $_POST[""];
$strpnt_id = $_POST["spnt_id"];
$strsur_high = $_POST["ssur_high"];
$strsur_circum = $_POST["ssur_circum"];
$strsur_pic_tree = $_POST["ssur_pic_tree"];
$strsur_pic_trunk = $_POST["ssur_pic_trunk"];
$strsur_pic_leaf = $_POST["ssur_pic_leaf"];
$strsur_pic_flower = $_POST["ssur_pic_flower"];
$strsur_pic_fruit = $_POST["ssur_pic_fruit"];
$strsur_dtime = date("Y-m-d");
$strsur_pnt_coor = $_POST["ssur_pnt_coor"];
$strSQL1 = "INSERT INTO plant_edit
( pnt_comm_name,
pnt_family_name,
pnt_sci_name,
pnt_vernac_name,
pnt_synonym_name,
pnt_info,
pnt_benefit,
pnt_reference)
VALUES (
'".$strpnt_comm_name."',
'".$strpnt_family_name."',
'".$strpnt_sci_name."',
'".$strpnt_vernac_name."',
'".$strpnt_synonym_name."',
'".$strpnt_info."',
'".$strpnt_benefit."',
'".$strpnt_reference."',
'".$strstat_verify."'
)
";
$objQuery1 = mysql_query($strSQL1);
if(!$objQuery1)
{
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!1";
}
else
{
$arr['StatusID1'] = "1";
$arr['Error'] = "";
}
$strSQL2 = "INSERT INTO survey_detail_tmp
(sur_high,
sur_circum,
sur_pic_tree,
sur_pic_trunk,
sur_pic_leaf,
sur_pic_flower,
sur_pic_fruit,
pnt_id,
sur_dtime,
sur_pnt_coor)
VALUES (
'".$strsur_high."',
'".$strsur_circum."',
'".$strsur_pic_tree."',
'".$strsur_pic_trunk."',
'".$strsur_pic_leaf."',
'".$strsur_pic_flower."',
'".$strsur_pic_fruit."',
'".$strpnt_id."',
'".$strsur_dtime."',
'".$strsur_pnt_coor."'
)
";
$objQuery2 = mysql_query($strSQL2);
if(!$objQuery2)
{
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!2";
}
else
{
$arr['StatusID1'] = "1";
$arr['Error'] = "";
}
mysql_close($objConnect);
echo json_encode($arr);
?>
Tag : Mobile, MySQL, Android, Mobile
|
ประวัติการแก้ไข 2015-09-16 19:16:00
|
|
|
|
|
Date :
2015-09-16 18:58:06 |
By :
sacool |
View :
1267 |
Reply :
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำแล้วคับ แต่ผลออกมาเป็นอย่างนี้ จะแก้ตรงไหนคับ
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","12345");
$objDB = mysql_select_db("db_conn");
// $strpnt_comm_name = $_POST["spnt_comm_name"];
// $strpnt_family_name = $_POST["spnt_family_name"];
// $strpnt_sci_name = $_POST["spnt_sci_name"];
// $strpnt_vernac_name = $_POST["spnt_vernac_name"];
// $strpnt_synonym_name = $_POST["spnt_synonym_name"];
// $strpnt_info=$_POST["spnt_info"];
// $strpnt_benefit = $_POST["spnt_benefit"];
// $strpnt_reference = $_POST["spnt_reference"];
// $strstat_verify = $_POST[""];
// $strpnt_id = $_POST["spnt_id"];
// $strsur_high = $_POST["ssur_high"];
// $strsur_circum = $_POST["ssur_circum"];
// $strsur_pic_tree = $_POST["ssur_pic_tree"];
// $strsur_pic_trunk = $_POST["ssur_pic_trunk"];
// $strsur_pic_leaf = $_POST["ssur_pic_leaf"];
// $strsur_pic_flower = $_POST["ssur_pic_flower"];
// $strsur_pic_fruit = $_POST["ssur_pic_fruit"];
// $strsur_dtime = date("Y-m-d");
// $strsur_pnt_coor = $_POST["ssur_pnt_coor"];
$strSQL1 = "INSERT INTO plant_edit
( pnt_comm_name,
pnt_family_name,
pnt_sci_name,
pnt_vernac_name,
pnt_synonym_name,
pnt_info,
pnt_benefit,
pnt_reference)
VALUES (
'".$strpnt_comm_name."',
'".$strpnt_family_name."',
'".$strpnt_sci_name."',
'".$strpnt_vernac_name."',
'".$strpnt_synonym_name."',
'".$strpnt_info."',
'".$strpnt_benefit."',
'".$strpnt_reference."',
'".$strstat_verify."'
)
";
$objQuery1 = mysql_query($strSQL1);
if(!$objQuery1)
{
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!1";
}
else
{
$arr['StatusID1'] = "1";
$arr['Error'] = "";
}
$strSQL2 = "INSERT INTO survey_detail_tmp
(sur_high,
sur_circum,
sur_pic_tree,
sur_pic_trunk,
sur_pic_leaf,
sur_pic_flower,
sur_pic_fruit,
pnt_id,
sur_dtime,
sur_pnt_coor)
VALUES (
'".$strsur_high."',
'".$strsur_circum."',
'".$strsur_pic_tree."',
'".$strsur_pic_trunk."',
'".$strsur_pic_leaf."',
'".$strsur_pic_flower."',
'".$strsur_pic_fruit."',
'".$strpnt_id."',
'".$strsur_dtime."',
'".$strsur_pnt_coor."'
)
";
$objQuery2 = mysql_query($strSQL2);
if(!$objQuery2)
{
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!2";
}
else
{
$arr['StatusID1'] = "1";
$arr['Error'] = "";
}
mysql_close($objConnect);
echo json_encode($arr);
?>
|
|
|
|
|
Date :
2015-09-17 10:32:40 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แก้ไปแก้มา มันขึ้นแบบนี้ครับ
Cannot add or update a child row: a foreign key constraint fails (`db_conn/plant_edit`, CONSTRAINT `plant_edit_ibfk_1` FOREIGN KEY (`pnt_id`) REFERENCES `plant_edit` (`pnt_id`) ON DELETE CASCADE ON UPDATE CASCADE)
|
|
|
|
|
Date :
2015-09-19 11:39:51 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณไปเชื่อม FK นะครับ มันน่จะไม่มี Key ที่เกี่ยวข้อง
|
|
|
|
|
Date :
2015-09-19 12:32:41 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
พี่ครับแล้วต้องแก้ยังไง ครับ
|
|
|
|
|
Date :
2015-09-19 13:11:26 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ช่วยเขียน app ที่บันทึกข้อมูลลง 2 ตาราง พร้อมกัน พอเป็นตัวอย่างแนวทางให้ได้ไหมครับ
|
|
|
|
|
Date :
2015-09-19 15:18:28 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลบพวก ON DELETE CASCADE ON UPDATE CASCADE ออกให้หมดครับ คุณใช้แบบ InnoDB หรือเปล่าครับ
|
|
|
|
|
Date :
2015-09-20 09:21:24 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
053.$objQuery1 = mysql_query($strSQL1);
054.if(!$objQuery1)
055.{
056.$arr['StatusID1'] = "0";
057.$arr['Error'] = "Cannot save data!1";
$arr['Sql'] = $strSQL1;
058.}
059.else
060.{
061.$arr['StatusID1'] = "1";
062.$arr['Error'] = "";
063.}
064. $strpnt_id_id = mysql_insert_id(); // ถ้า pnt_id เป็น fk
เพิ่มส่วนที่เป็นสีแดง
แก้ไขส่วน exit; เข้าใจผิด ไม่ต้องใส่
|
ประวัติการแก้ไข 2015-09-20 09:35:48 2015-09-20 09:44:14 2015-09-20 09:45:03
|
|
|
|
Date :
2015-09-20 09:34:57 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าใส่ $objQuery2 = mysql_query($strSQL2) or die(mysql_error()); จะขึ้นแบบนี้ครับ
ถ้าไม่ใส่
ซึ่งผมได้ลบ ON DELETE CASCADE ON UPDATE CASCADE และผมใช้ InnoDB ครับ
ข้อมูลจะลงอยู่ฐานข้อมูลเดียวคือ plant_edit ส่วน survey_detail_tmp ไม่เข้าครับ 2 อย่างข้างต้น ผลออกมาเหมือนกันครับ คือ ข้อมูลลงฐานข้อมูลเดียว คือ plant_edit
เหตุผลหลัก คือ อยากให้ plant_edit เป็นตัวหลักครับ พอจะมาเพิ่มรายละเอียดอะไร ก็มาเพิ่มใน survey_detail_tmp อ่ะครับ รบกวนด้วยนะครับ
|
|
|
|
|
Date :
2015-09-20 20:19:11 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
053.$objQuery1 = mysql_query($strSQL1);
054.if(!$objQuery1)
055.{
056.$arr['StatusID1'] = "0";
057.$arr['Error'] = "Cannot save data!1";
$arr['Sql'] = $strSQL1;
058.}
059.else
060.{
061.$arr['StatusID1'] = "1";
062.$arr['Error'] = "";
063.}
064. $strpnt_id_id = mysql_insert_id(); // ถ้า pnt_id เป็น fk
ผมแก้แล้วครับ แต่ข้อมูลก็เข้าฐานข้อมูลเดียวเหมือนกัน คือ plant_edit ครับ อีกฐานข้อมูลไม่เข้าครับ
รบกวนด้วยครับ TT
|
|
|
|
|
Date :
2015-09-20 20:22:16 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$strpnt_id_id สีแดงมันเกินมาครับ ขอโทษด้วยครับ ทำให้ไม่ แมท กับโค๊ด ต่อไปครับ
|
|
|
|
|
Date :
2015-09-21 06:56:21 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตาราง survey_detail_tmp ครับ
ตาราง plant_edit
บันทึกข้อมูลแต่ละครั้ง เข้า plant_edit ทุกครั้ง แต่ไม่เข้า survey_detail_tmp ครับ
|
|
|
|
|
Date :
2015-09-21 14:02:55 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอดูโค๊ดที่แก้ไขไปแล้วอีกทีครับ แก้ไปแบบไหนแล้ว
|
|
|
|
|
Date :
2015-09-21 15:49:46 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนด้วยครับ
Code (PHP)
<?php
$objConnect = mysql_connect("localhost","root","12345");
$objDB = mysql_select_db("db_conn");
// $strpnt_comm_name = $_POST["spnt_comm_name"];
// $strpnt_family_name = $_POST["spnt_family_name"];
// $strpnt_sci_name = $_POST["spnt_sci_name"];
// $strpnt_vernac_name = $_POST["spnt_vernac_name"];
// $strpnt_synonym_name = $_POST["spnt_synonym_name"];
// $strpnt_info=$_POST["spnt_info"];
// $strpnt_benefit = $_POST["spnt_benefit"];
// $strpnt_reference = $_POST["spnt_reference"];
// $strstat_verify = $_POST["aa"];
// $strpnt_id = $_POST["spnt_id"];
// $strsur_high = $_POST["ssur_high"];
// $strsur_circum = $_POST["ssur_circum"];
// $strsur_pic_tree = $_POST["ssur_pic_tree"];
// $strsur_pic_trunk = $_POST["ssur_pic_trunk"];
// $strsur_pic_leaf = $_POST["ssur_pic_leaf"];
// $strsur_pic_flower = $_POST["ssur_pic_flower"];
// $strsur_pic_fruit = $_POST["ssur_pic_fruit"];
// $strsur_dtime = date("Y-m-d");
// $strsur_pnt_coor = $_POST["ssur_pnt_coor"];
$strpnt_comm_name = $_POST["aaa"];
$strpnt_family_name = $_POST["bbb"];
$strpnt_sci_name = $_POST["cc"];
$strpnt_vernac_name = $_POST["dd"];
$strpnt_synonym_name = $_POST["ee"];
$strpnt_info=$_POST["ff"];
$strpnt_benefit = $_POST["ggt"];
$strpnt_reference = $_POST["hh"];
$strstat_verify = $_POST["aa"];
$strpnt_id = $_POST["spnt_id"];
$strsur_high = $_POST["aa"];
$strsur_circum = $_POST["bb"];
$strsur_pic_tree = $_POST["cc"];
$strsur_pic_trunk = $_POST["dd"];
$strsur_pic_leaf = $_POST["ee"];
$strsur_pic_flower = $_POST["ff"];
$strsur_pic_fruit = $_POST["gg"];
$strsur_dtime = date("Y-m-d");
$strsur_pnt_coor = $_POST["23233"];
$strSQL1 = "INSERT INTO plant_edit
( pnt_comm_name,
pnt_family_name,
pnt_sci_name,
pnt_vernac_name,
pnt_synonym_name,
pnt_info,
pnt_benefit,
pnt_reference,
stat_verify)
VALUES (
'".$strpnt_comm_name."',
'".$strpnt_family_name."',
'".$strpnt_sci_name."',
'".$strpnt_vernac_name."',
'".$strpnt_synonym_name."',
'".$strpnt_info."',
'".$strpnt_benefit."',
'".$strpnt_reference."',
'".$strstat_verify."'
)
";
$objQuery1 = mysql_query($strSQL1);
if(!$objQuery1)
{
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!1";
$arr['Sql'] = $strSQL1;
}
else
{
$arr['StatusID1'] = "1";
$arr['Error'] = "";
}
$strpnt_id = mysql_insert_id();
$strSQL2 = "INSERT INTO survey_detail_tmp
(sur_high,
pnt_id,
sur_circum,
sur_pic_tree,
sur_pic_trunk,
sur_pic_leaf,
sur_pic_flower,
sur_pic_fruit,
sur_dtime,
sur_pnt_coor)
VALUES (
'".$strsur_high."',
'".$strpnt_id."',
'".$strsur_circum."',
'".$strsur_pic_tree."',
'".$strsur_pic_trunk."',
'".$strsur_pic_leaf."',
'".$strsur_pic_flower."',
'".$strsur_pic_fruit."',
'".$strsur_dtime."',
'".$strsur_pnt_coor."'
)
";
$objQuery2 = mysql_query($strSQL2) or die(mysql_error());
if(!$objQuery2)
{
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!2";
}
else
{
$arr['StatusID1'] = "1";
$arr['Error'] = "";
}
mysql_close($objConnect);
echo json_encode($arr);
?>
|
|
|
|
|
Date :
2015-09-21 17:40:14 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองทดสอบดูครับ ผมเปลี่ยนให้เป็น MySqli (เครื่องผม ใช้ mysql ธรรมดาไม่ได้แล้ว)
Code (PHP)
<?php
$db = new mysqli("localhost","root","12345","db_conn");
// $strpnt_comm_name = $_POST["spnt_comm_name"];
// $strpnt_family_name = $_POST["spnt_family_name"];
// $strpnt_sci_name = $_POST["spnt_sci_name"];
// $strpnt_vernac_name = $_POST["spnt_vernac_name"];
// $strpnt_synonym_name = $_POST["spnt_synonym_name"];
// $strpnt_info=$_POST["spnt_info"];
// $strpnt_benefit = $_POST["spnt_benefit"];
// $strpnt_reference = $_POST["spnt_reference"];
// $strstat_verify = $_POST["aa"];
// $strpnt_id = $_POST["spnt_id"];
// $strsur_high = $_POST["ssur_high"];
// $strsur_circum = $_POST["ssur_circum"];
// $strsur_pic_tree = $_POST["ssur_pic_tree"];
// $strsur_pic_trunk = $_POST["ssur_pic_trunk"];
// $strsur_pic_leaf = $_POST["ssur_pic_leaf"];
// $strsur_pic_flower = $_POST["ssur_pic_flower"];
// $strsur_pic_fruit = $_POST["ssur_pic_fruit"];
// $strsur_dtime = date("Y-m-d");
// $strsur_pnt_coor = $_POST["ssur_pnt_coor"];
$strpnt_comm_name = $_POST["aaa"];
$strpnt_family_name = $_POST["bbb"];
$strpnt_sci_name = $_POST["cc"];
$strpnt_vernac_name = $_POST["dd"];
$strpnt_synonym_name = $_POST["ee"];
$strpnt_info=$_POST["ff"];
$strpnt_benefit = $_POST["ggt"];
$strpnt_reference = $_POST["hh"];
$strstat_verify = $_POST["aa"];
//$strpnt_id = $_POST["spnt_id"];
$strsur_high = $_POST["aa"];
$strsur_circum = $_POST["bb"];
$strsur_pic_tree = $_POST["cc"];
$strsur_pic_trunk = $_POST["dd"];
$strsur_pic_leaf = $_POST["ee"];
$strsur_pic_flower = $_POST["ff"];
$strsur_pic_fruit = $_POST["gg"];
$strsur_dtime = date("Y-m-d");
$strsur_pnt_coor = $_POST["23233"];
$strSQL1 = "INSERT INTO plant_edit (
pnt_comm_name, pnt_family_name, pnt_sci_name,
pnt_vernac_name, pnt_synonym_name, pnt_info,
pnt_benefit, pnt_reference, stat_verify
) VALUES (
'$strpnt_comm_name', '$strpnt_family_name', '$strpnt_sci_name',
'$strpnt_vernac_name', '$strpnt_synonym_name', '$strpnt_info',
'$strpnt_benefit', '$strpnt_reference', '$strstat_verify'
)";
if($db->query($strSQL1) ){
$strpnt_id = $db->insert_id;
$strSQL2 = "INSERT INTO survey_detail_tmp (
sur_high, pnt_id, sur_circum, sur_pic_tree,
sur_pic_trunk, sur_pic_leaf, sur_pic_flower,
sur_pic_fruit, sur_dtime, sur_pnt_coor
) VALUES (
'$strsur_high', '$strpnt_id', '$strsur_circum', '$strsur_pic_tree',
'$strsur_pic_trunk', '$strsur_pic_leaf', '$strsur_pic_flower',
'$strsur_pic_fruit', '$strsur_dtime', '$strsur_pnt_coor'
)";
if($db->query($strSQL2)){
$arr['StatusID1'] = "1";
$arr['Error'] = "";
} else {
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!2";
$arr['Sql'] = $strSQL2;
$arr['DetailError'] = $db->error;
}
}else{
$arr['StatusID1'] = "0";
$arr['Error'] = "Cannot save data!1";
$arr['Sql'] = $strSQL1;
$arr['DetailError'] = $db->error;
}
echo json_encode($arr);
ส่วน javascript ถ้า error ให้ alert Sql และ DetailError มาดูครับ
|
ประวัติการแก้ไข 2015-09-21 19:19:07
|
|
|
|
Date :
2015-09-21 19:15:32 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับพี่ ขอบคุณมากครับพี่
พอดีผมลืมทำ ตัว auto_increment ครับ
พี่ครับ ผมสงสัยอีกอย่างครับ
ปกติถ้าผมลบข้อมูลตาราง plant_edit ข้อมูลย่อย ๆ ของตาราง survey_detail_tmp ย่อย ๆ ที่ใช้ key ของ pnt_id ก็จะลบด้วยใช่ไหมครับ
แต่ทำไมพอผมลบแล้วข้อมูลยังอยู่เหมือนเดิมครับ
|
|
|
|
|
Date :
2015-09-21 21:03:08 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้อง ทำ foreign key cascade delete ไว้ด้วย ครับ
ปล. แล้วต้องเป็น innoDB ด้วยนะครับ MyIsam ใช้ไม่ได้
|
ประวัติการแก้ไข 2015-09-22 06:31:30
|
|
|
|
Date :
2015-09-22 06:26:53 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ ผม ขอบคุณมากๆนะครับ
|
|
|
|
|
Date :
2015-09-22 10:53:22 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2015-09-22 20:20:14 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าดึงข้อมูล 2 ตารางแบบเหมือนบันทึก ใช้ showInfo(); ตัวเดียวได้ไหมครับ
|
|
|
|
|
Date :
2015-10-02 11:55:05 |
By :
sacool |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|