อยากให้ บิลที่คีย์จาก textbox........................ตรวจสอบกับ BILL_DB ทุกตัว
ตอนนี้มันเปรียบเทียบเฉพาะฟิลด์สุดท้าย คือ (BILL_DB=100004)
อยากให้ บิลที่คีย์จาก textbox (BILL_KEY=100002) ตรวจสอบกับ BILL_DB ทุกตัว
ถ้า BILL_DB = BILL_KEY ให้ UPDATE
ถ้า BILL_DB != BILL_KEY ให้ INSERT
<? include "connect.php"; ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
$bill = $_POST['txtbill'];
$receive_name = $_POST['receive_name'];
$branch_no = $_POST["branch"];
$color = $_POST["color"];
$province = $_POST["province"];
$regis_year = $_POST["regis_year"];
$selbrand = $_POST["selbrand"];
$selClass = $_POST["selClass"];
$selType = $_POST["selType"];
/*แปลงวันที่ลง DB*/
$date_receive = $_POST['date_receive'];
$date_y = substr($date_receive,6,6);
$date_y = $date_y-543;
$date_y;
$date_m = substr($date_receive,3,2);
$date_d = substr($date_receive,0,2);
$save_fulldate = $date_y."-".$date_m."-".$date_d;
$strSQL = "SELECT * FROM bill ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mysql_fetch_array($objQuery))
{
$bill_number = $objResult["bill_number"];
echo 'BILL_DB='.$bill_number;
echo "<br>";
}
echo 'BILL_KEY='.$bill;
echo "<br>";
//query ตาราง bill มาว่าจะ update หรือ insert
if($bill == $bill_number)
{
echo 'UPDATE';
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = '".$bill_number."' ";
$objQuery1 = mysql_query($strSQL1) or die(mysql_error());
}else
{
echo 'INSERT';
$strSQL4 = "INSERT INTO bill (bill_number,date_receive,receive_name)
VALUES ('$bill','$save_fulldate','$receive_name')";
$objQuery4 = mysql_query($strSQL4) or die(mysql_error());
}
$strSQL1 = "INSERT INTO stock_receive_motor (branch_no,bill_number,machine_id,chassis_id,brand,class,type,color,plate,province,regis_year,status_motor,buy,sell,status_stock)
VALUES ('$branch_no','".$_POST["bill_number1"]."','".$_POST["machine_id"]."','".$_POST["chassis_id"]."','$selbrand','$selClass','$selType','$color','".$_POST["plate"]."','$province','$regis_year','".$_POST["status_motor"]."','".$_POST["buy"]."','".$_POST["sell"]."','1')";
$objQuery1 = mysql_query($strSQL1) or die(mysql_error());
$strSQL = "INSERT INTO stock_estimate (bill_number,machine_id,chassis_id,brand,class,type,color,plate,province,regis_year,status_motor,buy,sell,status_stock)
VALUES ('".$_POST["bill_number1"]."','".$_POST["machine_id"]."','".$_POST["chassis_id"]."','$selbrand','$selClass','$selType','$color','".$_POST["plate"]."','$province','$regis_year','".$_POST["status_motor"]."','".$_POST["buy"]."','".$_POST["sell"]."','1')";
$objQuery = mysql_query($strSQL) or die(mysql_error());
if($objQuery)
{
echo "<script>alert('บันทึกเรียบร้อยแล้ว');</script>";
echo"<meta http-equiv='refresh' content='1;URL=add_store.php?bill_number=$bill_number'>";
}
else
{
echo "Error Save [".$strSQL."]";
}
mysql_close();
?>
Tag : PHP, MySQL
Date :
2013-04-24 08:55:19
By :
lookpla26
View :
864
Reply :
26
SELECT count(*) cnt FROM bill where bill_db = bill_key ถ้าค่าที่คืนมามากกว่า 0 เท่ากับว่ามี bill นี้ในฐานข้อมูลแล้ว ก็เช็ค if เป็น update แต่ถ้าค่าเท่ากับ 0 ก็ Insert แบบนี้หรือเปล่าครับ
Date :
2013-04-24 09:13:41
By :
puwadon20
แก้ไม่ถูก งง เลย
Date :
2013-04-24 09:25:49
By :
lookpla26
if($bill_key==$bill_db){
update
}else{
insert
}
แบบนี้ได้แน่นอน
คือ ถ้า bill_key=$bill_db ให้ update
ถ้า bill_key!=$bill_db ให้ insert
Date :
2013-04-24 09:27:54
By :
pklangkua
ไม่ได้อ้ะ มันดึงเฉพาะฟิลด์สุดท้ายมาเปรียบเทียบ
$bill_key == $bill_db ถ้าเท่ากับฟิลด์สุดท้ายมันก็ insert
$strSQL = "SELECT * FROM bill ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
while($objResult = mysql_fetch_array($objQuery))
{
$bill_db = $objResult["bill_number"];
}
//query ตาราง bill มาว่าจะ update หรือ insert
if($bill_key == $bill_db)
{
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = '".$bill_number."' ";
$objQuery1 = mysql_query($strSQL1);
//echo $strSQL1;
}else
{
$strSQL4 = "INSERT INTO bill (bill_number,date_receive,receive_name)
VALUES ('$bill','$save_fulldate','$receive_name')";
$objQuery4 = mysql_query($strSQL4) or die(mysql_error());
}
ประวัติการแก้ไข 2013-04-24 09:32:14 2013-04-24 09:32:33
Date :
2013-04-24 09:31:19
By :
lookpla26
ลองเปลี่ยนเป็นแบบนี้ดู
if($bill==$bill_db)
Date :
2013-04-24 09:35:13
By :
pklangkua
ยังเหมือนเดิม เลย.....มันดึงฟิล์ดสุดท้ายมาเปรียบเทียบอย่างเดียว
<? include "connect.php"; ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
$bill = $_POST["txtbill"];
$receive_name = $_POST["receive_name"];
/*แปลงวันที่ลง DB*/
$date_receive = $_POST['date_receive'];
$date_y = substr($date_receive,6,6);
$date_y = $date_y-543;
$date_y;
$date_m = substr($date_receive,3,2);
$date_d = substr($date_receive,0,2);
$save_fulldate = $date_y."-".$date_m."-".$date_d;
$strSQL = "SELECT * FROM bill ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
while($objResult = mysql_fetch_array($objQuery))
{
$bill_db = $objResult["bill_number"];
}
//query ตาราง bill มาว่าจะ update หรือ insert
if($bill == $bill_db)
{
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = '".$bill_db."' ";
$objQuery1 = mysql_query($strSQL1);
//echo $strSQL1;
}else
{
$strSQL4 = "INSERT INTO bill (bill_number,date_receive,receive_name)
VALUES ('$bill','$save_fulldate','$receive_name')";
$objQuery4 = mysql_query($strSQL4) or die(mysql_error());
}
if($objQuery)
{
echo "<script>alert('บันทึกเรียบร้อยแล้ว');</script>";
echo"<meta http-equiv='refresh' content='1;URL=add_store.php?bill_number=$bill_number'>";
}
else
{
echo "Error Save [".$strSQL."]";
}
mysql_close();
?>
ประวัติการแก้ไข 2013-04-24 09:41:29
Date :
2013-04-24 09:40:48
By :
lookpla26
ให้ย้าย if...else เข้าไปในลูป while ด้วยครับ ไม่งั้นมันวนรอบจนครบก่อน แล้วจึงเลื่อนไปทำ if...else ทีหลัง
Code (PHP)
$strSQL = "SELECT * FROM bill ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
while($objResult = mysql_fetch_array($objQuery))
{
$bill_db = $objResult["bill_number"];
//query ตาราง bill มาว่าจะ update หรือ insert
if($bill_key == $bill_db)
{
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = '".$bill_number."' ";
$objQuery1 = mysql_query($strSQL1);
//echo $strSQL1;
}else
{
$strSQL4 = "INSERT INTO bill (bill_number,date_receive,receive_name)
VALUES ('$bill','$save_fulldate','$receive_name')";
$objQuery4 = mysql_query($strSQL4) or die(mysql_error());
}
}
Date :
2013-04-24 09:41:38
By :
ทองมี
ตามคุณทองมีเลยยครับ
Date :
2013-04-24 09:45:43
By :
pklangkua
แต่ถ้า bill_number เป็น PK แนะนำให้เขียนโค้ดอย่างนี้ดีกว่านะครับ มันจะได้ไม่ต้องไปเรียกทุกบิลในตารางมาทำงาน ไม่งั้นต่อไปถ้าบิลมีเยอะ ๆ นั่งรอยาวแน่ กว่าจะดึงมาหมด (select เฉพาะสิ่งที่จะใช้มาดีกว่าครับ)
Code (PHP)
$strSQL = "SELECT * FROM bill WHERE bill_number='$bill'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
$objResult = mysql_fetch_array($objQuery);
$bill_db = $objResult["bill_number"];
//query ตาราง bill มาว่าจะ update หรือ insert
if($bill_key == $bill_db)
{
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = '".$bill_number."' ";
$objQuery1 = mysql_query($strSQL1);
//echo $strSQL1;
}else
{
$strSQL4 = "INSERT INTO bill (bill_number,date_receive,receive_name)
VALUES ('$bill','$save_fulldate','$receive_name')";
$objQuery4 = mysql_query($strSQL4) or die(mysql_error());
}
Date :
2013-04-24 09:47:14
By :
ทองมี
<? include "connect.php"; ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
$bill = $_POST["txtbill"];
$receive_name = $_POST["receive_name"];
/*แปลงวันที่ลง DB*/
$date_receive = $_POST['date_receive'];
$date_y = substr($date_receive,6,6);
$date_y = $date_y-543;
$date_y;
$date_m = substr($date_receive,3,2);
$date_d = substr($date_receive,0,2);
$save_fulldate = $date_y."-".$date_m."-".$date_d;
$strSQL = "SELECT * FROM bill ";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
while($objResult = mysql_fetch_array($objQuery))
{
$bill_db = $objResult["bill_number"];
//query ตาราง bill มาว่าจะ update หรือ insert
if($bill == $bill_db)
{
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = '".$bill_db."' ";
$objQuery1 = mysql_query($strSQL1);
//echo $strSQL1;
}else
{
$strSQL4 = "INSERT INTO bill (bill_number,date_receive,receive_name)
VALUES ('$bill','$save_fulldate','$receive_name')";
$objQuery4 = mysql_query($strSQL4) or die(mysql_error());
}
if($objQuery)
{
echo "<script>alert('บันทึกเรียบร้อยแล้ว');</script>";
echo"<meta http-equiv='refresh' content='1;URL=add_store.php?bill_number=$bill_number'>";
}
else
{
echo "Error Save [".$strSQL."]";
}
}
mysql_close();
?>
เอาตามนี้เลย แล้วลองดู
Date :
2013-04-24 09:48:42
By :
pklangkua
เช็กว่า bill ที่คีย์เข้ามามีในฐานข้อมูลแล้วยังโดยใช้ count ได้มั้ย ถ้าคืนค่ามากกว่า 0 UPDATE ถ้าเขียนแบบนี้ได้มั้ยค้ะ
เข้าใจหลักกการน่ะ เเต่เขียนโค้ดไม่ถูก
Date :
2013-04-24 09:56:15
By :
lookpla26
{
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = $bill_db".$bill_db."' ";
$objQuery1 = mysql_query($strSQL1);
ประวัติการแก้ไข 2013-04-24 10:12:58
Date :
2013-04-24 10:12:19
By :
pklangkua
เจอค่า bill_number แล้ว แต่ UPDATE ไม่ได้เหมือนเดิม
UPDATE bill SET date_receive = '2013-04-03' receive_name = 'นางสาวกนกวรรณ เช้าฉ้อง' WHERE bill_number = '100001'
<? include "connect.php"; ?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
$bill = $_POST["txtbill"];
$receive_name = $_POST["receive_name"];
$branch_no = $_POST["branch"];
$color = $_POST["color"];
$province = $_POST["province"];
$regis_year = $_POST["regis_year"];
$selbrand = $_POST["selbrand"];
$selClass = $_POST["selClass"];
$selType = $_POST["selType"];
/*แปลงวันที่ลง DB*/
$date_receive = $_POST['date_receive'];
$date_y = substr($date_receive,6,6);
$date_y = $date_y-543;
$date_y;
$date_m = substr($date_receive,3,2);
$date_d = substr($date_receive,0,2);
$save_fulldate = $date_y."-".$date_m."-".$date_d;
$strSQL = "SELECT * FROM bill WHERE bill_number='$bill'";
$objQuery = mysql_query($strSQL) or die ("Error Query [".$strSQL."]");
$Num_Rows = mysql_num_rows($objQuery);
//echo $Num_Rows;
if($Num_Rows >= 1)
{
$strSQL1 = "UPDATE bill SET ";
$strSQL1 .="date_receive = '".$save_fulldate."' ";
$strSQL1 .="receive_name = '".$receive_name."' ";
$strSQL1 .="WHERE bill_number = '".$bill."' ";
$objQuery1 = mysql_query($strSQL1);
echo $strSQL1;
}else
{
$strSQL2 = "INSERT INTO bill (bill_number,date_receive,receive_name)
VALUES ('$bill','$save_fulldate','$receive_name')";
$objQuery2 = mysql_query($strSQL2) or die(mysql_error());
}
$strSQL3 = "INSERT INTO stock_receive_motor (branch_no,bill_number,machine_id,chassis_id,brand,class,type,color,plate,province,regis_year,status_motor,buy,sell,status_stock)
VALUES ('$branch_no','$bill','".$_POST["machine_id"]."','".$_POST["chassis_id"]."','$selbrand','$selClass','$selType','$color','".$_POST["plate"]."','$province','$regis_year','".$_POST["status_motor"]."','".$_POST["buy"]."','".$_POST["sell"]."','1')";
$objQuery3 = mysql_query($strSQL3) or die(mysql_error());
$strSQL4 = "INSERT INTO stock_estimate (bill_number,machine_id,chassis_id,brand,class,type,color,plate,province,regis_year,status_motor,buy,sell,status_stock)
VALUES ('$bill','".$_POST["machine_id"]."','".$_POST["chassis_id"]."','$selbrand','$selClass','$selType','$color','".$_POST["plate"]."','$province','$regis_year','".$_POST["status_motor"]."','".$_POST["buy"]."','".$_POST["sell"]."','1')";
$objQuery4 = mysql_query($strSQL4) or die(mysql_error());
/*if($objQuery)
{
echo "<script>alert('บันทึกเรียบร้อยแล้ว');</script>";
echo"<meta http-equiv='refresh' content='1;URL=add_store.php?bill_number=$bill_number'>";
}
else
{
echo "Error Save [".$strSQL."]";
}
*/
mysql_close();
?>
ประวัติการแก้ไข 2013-04-24 10:20:40
Date :
2013-04-24 10:18:57
By :
lookpla26
ได้เเล้วค่ะ ขอบคุณทุกๆๆๆๆคอมเม้นมากเลยค่ะ...
ไม่ได้อยากจะให้คนอื่นช่วยตลอดน้ะค้ะ เเต่ว่ามันจนปัญญาจิงๆๆๆ
ทำมาสองวันเเล้ว เส้นผมบังภูเขาจริงๆ
Date :
2013-04-24 10:27:03
By :
lookpla26
Load balance : Server 05