|
|
|
สอบถามปัญหาคำสั่ง SQL ของ MySQLi เกี่ยวกับการใช้ Delete WHERE date ค่ะ |
|
|
|
|
|
|
|
ไม่ทราบว่าปัญหาที่เจอคือ พอถึงวันที่ต้องการลบแล้ว มันไม่ลบข้อมูลหรือว่า ติดปัญหาตรงส่วนไหนครับ
สมมุติหากว่าเรามีการกำหนดค่าวันที่ จะให้ลบข้อมูลโดยจัดเก็บข้อมูลวันที่เอาไว้ก่อนในฐานข้อมูล หรืออาจจะกำหนดโดยตรงเช่น 2017-02-10 ก็คือสั่งให้ลบข้อมูลที่ expiredate เท่าหับวันที่ 10-02-2017 แต่จากคำสั่ง
DELETE FROM xxx WHERE expiredate=now()
ตรงนี้ใช้คำสั่ง now() นั่นเท่ากับว่าให้ทำการลบข้อมูลในวันที่ ปัจจุบันนะครับ
|
|
|
|
|
Date :
2017-02-15 00:57:19 |
By :
Manussawin |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อยากให้ข้อมูลถูกลบตามวันที่ expire ที่เรากำหนดค่ะ
แต่เขียนโค๊ดแบบนี้ข้อมูลไม่ออกเลยค่ะออกแต่หัวเรืองแบบนี้ค่ะ
|
|
|
|
|
Date :
2017-02-15 14:05:15 |
By :
monsiri55 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำแบบนี้น่าจะดีกว่าครับ
Code (PHP)
$date_now = date('Y-m-d');
$sql = "select id,expire from xxx where expire = '$date_now'";
$query = mysqli_query($dbconfig,$strSQL);
while ($row = mysqli_fetch_assoc($query )) {
delete_expire ($row['id']);
};
function delete_expire ($id_expire){
$dbconfig = //เชื่อมต่อ DB ของคุณ
$strSQL= "delete from xxxx where id = '$id_expire'";
$query = mysqli_query($dbconfig,$strSQL);
if($result=mysqli_affected_rows($dbconfig)) {
echo "Record delete successfully";
}
}
|
|
|
|
|
Date :
2017-02-16 08:31:04 |
By :
thesin18598 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปล. php จะไม่สามารถทำงานได้เลย ถ้าหน้านั้นไม่ถูก request
อาจจะต้องใช้ cron job หรือ mysql event เพิ่มเติมเอาครับ
|
|
|
|
|
Date :
2017-02-16 09:18:32 |
By :
Luz |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 01
|