|
|
|
สอบถามการ update data php ถ้า data ซ้ำ กันให้ return ไป page อื่นเลย ไม่ ต้อง update data ที่ไม่ซ้ำเข้าไปอีกครับ |
|
|
|
|
|
|
|
Code (PHP)
$chk_id='(' . implode(',', $_REQUEST['faredetail_id']) .')';
$sql = "SELECT faredetail_id FROM fare_detail
WHERE faredetail_id IN $chk_id limit 1";
$rs=mysql_query($sql);
if(mysql_num_rows($rs)) header('location: nextpage.php');
|
ประวัติการแก้ไข 2015-08-05 15:25:30
|
|
|
|
Date :
2015-08-05 15:24:42 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
foreach($_REQUEST['faredetail_id'] as $key=>$value){
$faredetail_id=$_REQUEST['faredetail_id'][$key];
$service_date=$_REQUEST['service_date'][$key];
$order_status=$_REQUEST['order_status'][$key];
$sum_amount=$_REQUEST['sum_amount'][$key];
//echo "<br>";
$resulta = mysql_query("SELECT * FROM fare_detail WHERE service_date ='$service_date' AND user = '$Emp_id' and faredetail_id ='$faredetail_id'");
while($rowa = mysql_fetch_array($resulta))
{
$rule = $rowa['print_status'];
}
if ($rule == "y")
{
$error = "Dupplicate";
$chk_id='(' . implode(',', $_REQUEST['faredetail_id']) .')';
$sql = "SELECT faredetail_id FROM fare_detail
WHERE faredetail_id IN $chk_id limit 1";
$rs=mysql_query($sql);
if(mysql_num_rows($rs)) header('location: nextpage.php');
}
else {
$sql_fare_detail="update fare_detail set print_status ='y' where service_date='$service_date' and faredetail_id='$faredetail_id' and user='$Emp_id' and sum_amount='$sum_amount'";
$result_fare_detail = mysql_query($sql_fare_detail);
}
}
นำไปใส่ตรงนี้ปะครับ มันก้ยัง add อยุ่อะครับ
|
|
|
|
|
Date :
2015-08-05 16:05:57 |
By :
wahahaboy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดู flow if else ให้ดี ครับ จัดวางตำแหน่ง indent tab ให้เข้าใจง่าย จะได้รู้ว่า if else ไหนทำอะไร
|
|
|
|
|
Date :
2015-08-05 16:32:47 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองใส่ที่ else ล่างแล้วก่อนที่มันจะ update ให้เช็คอีกที แต่กลายเป็นว่าทีนี้ไม่ว่าจะมีข้อมูลหรือไม่มีมันเด้งออกอย่างเดียวเลยครับ
|
|
|
|
|
Date :
2015-08-06 11:02:47 |
By :
wahahaboy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
oreach($_REQUEST['faredetail_id'] as $key=>$value){
$faredetail_id=$_REQUEST['faredetail_id'][$key];
$service_date=$_REQUEST['service_date'][$key];
$order_status=$_REQUEST['order_status'][$key];
$sum_amount=$_REQUEST['sum_amount'][$key];
//echo "<br>";
$resulta = mysql_query("SELECT * FROM fare_detail WHERE service_date ='$service_date' AND user = '$Emp_id' and faredetail_id ='$faredetail_id'");
while($rowa = mysql_fetch_array($resulta))
{
$rule = $rowa['print_status'];
}
if ($rule == "y")
{
$error = "Dupplicate";
}
else {
$chk_id='(' . implode(',', $_REQUEST['faredetail_id']) .')';
$sql = "SELECT faredetail_id FROM fare_detail
WHERE faredetail_id IN $chk_id and print_status ='y' ";
$rs=mysql_query($sql);
if(mysql_num_rows($rs)){
// header('location: fare1.php');
}else{
$sql_fare_detail="update fare_detail set print_status ='y' where service_date='$service_date' and faredetail_id='$faredetail_id' and user='$Emp_id' and sum_amount='$sum_amount'";
$result_fare_detail = mysql_query($sql_fare_detail);
}
}
}
ถ้าข้อมูลไม่มีมัน update แค่เลขเดียวอะครับ
|
|
|
|
|
Date :
2015-08-06 11:58:19 |
By :
wahahaboy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองดูรูปแบบนี้ครับ
Code (PHP)
<?php
$pre = array(); $rq=$_REQUEST;
foreach($rq['faredetail_id'] as $key=>$value){
// ตรวจสอบข้อมูลและแปลงค่า request ในรูปแบบที่ปลอดภัยจาก sql injection
$pre['id'][$key]=($id=intval($value)); // ตัวอย่างคิดว่า id เป็นตัวเลข ถ้าไม่ใช้ก็เปลี่ยนให้ถูกเองนะครับ
$pre['dte'][$key]=($dte=strtotime($rq['service_date'][$key]));
$pre['status'][$key]=($status=mysql_real_escape_string($rq['order_status'][$key]));
$pre['amount'][$key]=floatval($rq['sum_amount'][$key]);
$where = "service_date ='$dte' AND user = '$Emp_id' and faredetail_id ='$id' and print_status='y' ";
$resulta = mysql_query($sql='SELECT 1 as a FROM fare_detail WHERE '.$where . ' limit 1')
or die( mysql_error() . "<br>$sql");
if ( mysql_num_rows($resulta) ) { $pre=false; break; } // จบการค้นหา เมื่อเจอข้อมูลซ้ำ และ เซทค่า $pre=false
}
if($pre===false){
$wait_sec = 10;
exit('<!doctype html><html>
<head><meta http-equiv="refresh" content="'.$wait_sec.';url=http://www.your_url.com/" /></head>
<body>Duplicate<a href="http://www.your_url.com/">go to http://www.your_url.com</a></body></html>'
);
}
foreach($pre as $key=>$value){
$id=$pre['id'][$key];
$dte=$pre['dte'][$key];
$status=$pre['status'][$key];
$amount=$pre['amount'][$key];
$where = "service_date ='$dte' AND user = '$Emp_id' and faredetail_id ='$id' ";
mysql_query($sql="update fare_detail set print_status ='y' where $where") or die( mysql_error() . "<br>$sql");
}
|
|
|
|
|
Date :
2015-08-06 13:41:24 |
By :
NewbiePHP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้เลยครับ ขอบคุณครับแต่ต้องแก้
Code (PHP)
foreach($pre['id'] as $key=>$value){
บรรทัดนี้นะครับ ถึงใช้ได้ครับ
|
|
|
|
|
Date :
2015-08-06 15:02:49 |
By :
wahahaboy |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|