จะเก็บประวัติการเลื่อนระยะเวลาทุกครั้งที่ทำการเลื่อน และนับครั้งที่เลื่อน ทำยังไงคะTT
เลื่อนอะไร?
การ update ก็คือปรับปรุงของเก่าก็ถูกต้องแล้ว
ถ้าจะแทรกเข้าไปใหม่ก็ต้องใช้ insert
อยากจะให้บันทึกข้อมูลใหม่ด้วยเก่าด้วย ก็ใช้ทั้ง update, insert สิ แต่ว่าจะทำอย่างนั้นทำไม?
ถ้าจะอัพเดทจำนวน ให้มัน +1 ทุกครั้งก็ใช้แบบนี้ https://stackoverflow.com/a/3866552/128761
หรือลองถามใหม่ให้รู้เรื่องดีกว่าไหม?
Date :
2020-09-29 10:42:09
By :
mr.v
อันนี้โค้ดฟอร์มเลื่อนระยะเวลาค่ะ คือหนูเก็บวันที่เริ่มต้น และวันที่สิ้นสุดไว้ก่อนหน้านี้แล้ว ซึ่งหนูนำตัวEnddate มาใช้ในการเลื่อน
วันที่ คืออยากให้ Newdate ที่สร้างใหม่แทนตัว Enddate แต่เคยเปลี่ยนแล้ว หน้าที่แสดงข้อมูลจากการอัพเดตไม่เลื่อนให้ อย่างงี้ต้องทำยังไงคะ
ปล.save_sliding.php คือโค๊ดที่แปะไว้ข้างต้น
Code (PHP)
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<html>
<body>
<form action="save_sliding.php?ID=<?=$_GET["ID"];?>" name="frmEdit" method="post">
<?
$objConnect = mysql_connect("localhost","root","123456789") or die("Error Connect to Database");
$objDB = mysql_select_db("system");
$strSQL = "SELECT * FROM borrowreturn WHERE ID = '".$_GET["ID"]."' ";
$objQuery = mysql_query($strSQL);
$objResult = mysql_fetch_array($objQuery);
if(!$objResult)
{
echo "Not found ID=".$_GET["ID"];
}
else
{
?>
<div class="form-group">
<div class="col-sm-2" align="right">ชื่อโครงการ</div>
<div class="col-sm-3" align="left">
<input type="text" name="project_name" size="2" disabled="disabled" value="<?=$objResult["project_name"];?>"class="form-control">
</div>
</div><br><br>
<div class="form-group">
<div class="col-sm-2" align="right">วันที่เดิม</div>
<div class="col-sm-3" align="left">
<input type="StartDate" name="StartDate" size="2" disabled="disabled" value="<?=$objResult["StartDate"];?>"class="form-control">
</div>
</div><br>
<div class="form-group">
<div class="col-sm-2" align="right">ถึง</div>
<div class="col-sm-3" align="left">
<input type="EndDate" name="EndDate" size="2" disabled="disabled" value="<?=$objResult["EndDate"];?>"class="form-control">
</div>
</div><br><br>
<div class="form-group">
<div class="col-sm-2" align="right">เลื่อนเป็นวันที่</div>
<div class="col-sm-3" align="left">
<input type="date" name="EndDate" size="20" value=""class="form-control">
</div>
</div><br>
<div class="form-group">
<div class="col-sm-2"> </div>
<div class="col-sm-3">
<button type="submit" class="btn btn-success" name= "save" id="btn"> บันทึก </button>
</div>
</div>
</form>
<div class="col-sm-6">
</div>
<?
}
mysql_close($objConnect);
?>
</form>
</body>
</html>
Date :
2020-09-29 11:15:57
By :
Arreeya2116
ผมยังไม่เห็น newdate ตรงไหนเลย
แล้ว enddate คือถ้าจะเปลี่ยนข้อมูลนี้ ก็ใช้ update ก็ถูกแล้ว
ทีนี้พอ update แล้วข้อมูลในฐานข้อมูลเปลี่ยนหรือไม่?
ถ้าข้อมูลในฐานข้อมูลเปลี่ยนก็ถูกแล้ว ถ้าหน้าแสดงข้อมูลไม่เปลี่ยนอันนั้นแสดงว่าติด cache อะไรสักอย่าง อาจต้องลอง ctrl+f5
คืออ่านแล้วก็ยังไม่ค่อยเข้าใจอยู่ดีจะให้มันบันทึกยังไงกันแน่?
แล้วก็ยังใช้ mysql function อยู่อีกทั้งที่เขาให้เลิกใช้ไปเกือบจะสิบปีแล้ว https://www.thaicreate.com/php/forum/095986.html
Date :
2020-09-29 11:28:23
By :
mr.v
ถ้าจะเอาแบบเปลี่ยน enddate ใหม่ โดยเก็บวันที่ enddate ของเก่าที่เคยบันทึกแล้วไว้ด้วย
แบบนั้นก็ต้องออกแบบตารางอันใหม่ขึ้นมา อย่างเช่น มี id, reference_id (อิงกับ id ของตาราง borrowreturn), previous_enddate, current_enddate
แล้วทุกครั้งที่ทำการ update enddate ในตาราง borrowreturn ก็ให้ insert ข้อมูลลงในตารางใหม่นี้ด้วย คือส่งวันที่ enddate ของเดิมมากับฟอร์ม บันทึกลงใน previous_enddate แล้ววันที่ enddate ของใหม่ลงใน current_enddate แบบนี้ก็จะได้เก็บประวัติการแก้ไขทุกๆครั้ง
Date :
2020-09-29 11:33:25
By :
mr.v
ขอบคุณ คุณ mr.v ค่ะ
พอจะมีโค้ดตัวอย่างให้ดูมั้ยคะ หนูงงตรงตัว insert ค่าค่ะ
Date :
2020-09-29 11:54:06
By :
Arreeya2116
Code (PHP)
<form method="post" action="save.php?id=<?php echo $_GET['ID']; ?>">
end date ปัจจุบัน <?=$objResult["EndDate"];?><br>
<input type="hidden" name="previous_enddate" value="<?=$objResult["EndDate"];?>">
เลื่อน end date ใหม่เป็น
<input type="date" name="current_enddate">
</form>
form.php
Code (PHP)
<?php
if (!isset($_POST['current_enddate']) || empty($_POST['current_enddate'])) {
echo 'กรุณากรอกวันที่!';
exit();
}
if ($_POST['current_enddate'] != $_POST['previous_enddate'])) {
// ถ้าวันที่มีการเปลี่ยนแปลงจากของเดิม
// UPDATE borrowreturn ... (สั่งอัพเดท)
// INSERT INTO (สั่งเพิ่มเก็บประวัติการแก้ไข)
}
save.php
ไม่ได้ทดลองรัน แต่โค้ดคร่าวๆประมาณนี้ ออกแบบตารางเก็บประวัติการแก้ไข แล้วใช้คำสั่ง insert ธรรมดาแทรกลงไปหลังการ update
Date :
2020-09-29 12:32:13
By :
mr.v
เลื่อนผ่านแล้วค่ะ แต่ข้อมูลยังไม่เข้าเลยย
Code (PHP)
if (!isset($_POST['current_enddate']) || empty($_POST['current_enddate'])) {
echo 'กรุณากรอกวันที่!';
exit();
}
if ($_POST['current_enddate'] != $_POST['previous_enddate']) {
$objConnect = mysql_connect("localhost","root","123456789") or die("Error Connect to Database");
$objDB = mysql_select_db("system");
$strSQL = "UPDATE borrowreturn SET ";
$strSQL .="EndDate = '".$_POST["EndDate"]."' ";
$strSQL .="WHERE ID = '".$_GET["ID"]."' ";
$strSQL1 = "INSERT INTO sliding_date (ID, previous_enddate, current_enddate)
VALUE ('$ID', '$previous_enddate', '$current_enddate')";
$objQuery = mysql_query($strSQL);
$objQuery1 = mysql_query($strSQL1);
Date :
2020-09-29 14:22:13
By :
Arreeya2116
ถ้าเพิ่มค่า EndDate เข้ามาแล้ว จะเลื่อนโดยการใช้ NewDate เพื่อให้ NewDate เข้าดาต้าเบสเก็บวันที่ใหม่
แล้วที่นี้หนูจะสามารถเรียกใช้ตัว NewDate ให้มาแสดงในEndDate ได้มั้ยคะ เหมือนแทนที่กันไปเลย
Date :
2020-09-30 10:59:46
By :
Arreeya2116
จาก คห 4 อธิบายเพิ่มเติม
ศึกษา ตารางหลัก(main) ตารางรอง (transaction detail)
คือหลักการ insert update รู้สึกจขกท จะรู้อยู่แล้ว ถ้าเข้าใจเรื่อง main / detail ก็จะสามารถประยุกตืมาใช้งานได้
Date :
2020-09-30 13:07:47
By :
Chaidhanan
ขอบคุณ คุณ mr.v มากเลยค่ะ ตอนนี้ได้เกือบหมดแล้ว
แต่ติดตรงที่ EndDate เป็นตัวที่เราใช้เพิ่มข้อมูลเข้ามา เมื่อนำ NewDate มาแทนที่ในตัว EndDate แล้ว เราจะเพิ่มค่าตัว EndDateไม่ได้ค่ะ
คืออย่างงี้ต้องทำยังไงคะ
Date :
2020-10-01 14:22:46
By :
Arreeya2116
คหสต.
คือให้มัน insert เพียวๆ เลยได้หรือเปล่าครับ
ไม่ต้องมีอัพเดท
อย่างเช่น คุณมีวันที่เก่าอยู่แล้ว 1/10/2563
ก็ insert ข้อมูลวันที่เลื่อนนัดใหม่เข้าไป 5/10/2563 แล้วก็ให้มันเก็บข้อมูลเก่าไปด้วยคือ 1/10/2563
ถ้าเลื่อนอีกก็ insert เข้าไปอีก เลื่อนนัดใหม่เป็น 10/10/2563 แล้วก็ให้มันเก็บข้อมูลเก่าไปด้วยคือ 5/10/2563
ถ้าเลื่อนอีกก็ทำไปเรื่อย ๆครับ
ซึ่่งในฐานข้อมูลก็จะเก็บเป็น
ครั้งที่ 1 นัด 1/10/2563
ครั้งที่ 2 นัด 5/10/2563 นัดเก่า 1/10/2563
ครั้งที่ 3 นัด 10/10/2563 นัดเก่า 5/10/2563
เวลาแสดงข้อมูลเราก็เลือก แสดงวันที่นัดโดย ให้แสดงตารางนัดล่าสุดกับตารางเก่า
ลองไปดูพวก PK กับ FK ดูครับ ถ้าได้พวก main/detail เหมือน คห 11 น่าจะทำได้ง่ายขึ้นครับ
Date :
2020-10-01 15:07:31
By :
nobetaking
หน้าเพิ่มข้อมูล EndDate(1)
หน้าตารางแสดงข้อมูล EndDate (2)
หน้าเลื่อนวันที่ใช้ NewDate (3)
ตอนนี้เชื่อมค่า previous_enddate,current_enddate ตามที่คุณ mr.v บอกได้แล้ว
ถ้าอยากนำ NewDate ไปใส่แทนในตารางแสดงข้อมูล (2) พอจะมีวิธีไหมคะ โดยไม่ให้ทับกับ EndDate เมื่อ UPDATE ค่าเข้าไปแล้ว
ประวัติการแก้ไข 2020-10-06 09:43:49 2020-10-06 09:44:22
Date :
2020-10-06 09:42:40
By :
Arreeya2116
export create table โครงสร้างตารางออกมา
พร้อมตัวอย่างข้อมูลสัก 2-3 รายการ (insert into ...)
เอาโค้ดเฉพาะที่เกี่ยวกับการ update แบบล่าสุดนี้มา
เพราะยิ่งถามยิ่งงง ผมไม่รู้ว่าคุณไปถึงไหนแล้วทำไมมันจึงซับซ้อนขนาดนั้นทั้งที่ความจริงมันไม่ได้ซับซ้อนขนาดนั้นเลย ถ้าคุณดูตัวอย่างของผมแล้วเปรียบเทียบเป็นอ่านโค้ดเข้าใจ มันไม่ซับซ้อนเลยครับ
หรือไม่ก็รอท่านอื่นมาตอบเพราะผมงง ไปไม่ถูกแล้วเหมือนกัน
ประวัติการแก้ไข 2020-10-06 12:00:10
Date :
2020-10-06 11:59:29
By :
mr.v
เกมนี้ว่าจะไม่กวนแล้ว (แอบลุ้น 100 rep )
จากที่อ่านซ้ำหลายๆ รอบ เข้าใจว่า ที่ จขกท.ต้องการคือ
ใช้คำสั่ง UPDATE โดยสร้างฟิลด์ใหม่ขึ้นมาทุกครั้ง
แต่บังเอิญว่าการ UPDATE มันต้องอ้างชื่อฟิลด์ หรือ ต้องมีฟิลด์อยู่แล้ว
ดังนั้น ต้องมีขอบเขตของการเลื่อน เพราะในความเป็นจริงไม่มีห้อง/หอสมุดที่ไหนให้เลื่อนได้ไม่จำกัด
ออกแบบตารางในลักษณะนี้
borrowreturn
| ID | ref_id | startdate | enddate | hist_enddate_1 | hist_enddate_2 | hist_enddate_N |
N คือ จำนวนครั้งสูงสุดที่สามารถเลื่อนได้
แต่ถ้าจำเป็นต้อง unlimited overdue ทำตามท่านอื่นที่ได้แนะนำไว้แล้ว
โดย ศึกษาเพิ่มเติมเรื่องความสัมพันธ์(Relationship)
ของระบบ RDBMS (Relational DataBase Management System)
ดังนั้น การออกแบบตาราง จะมีสองตารางที่มีความสัมพันธ์กันในลักษณะ ดังนี้
borrowreturn
| ID | ref_id | startdate | enddate |
overdue
| No | return_id | date |
overdue คือ ตารางเก็บวันที่การเลื่อน
date คือ enddate เดิม
No คือ ครั้งที่เลื่อน
เวลาอัปเดตก็ JOIN เอา
https://www.mysqltutorial.org/mysql-update-join/
หรือทำใน overdue เลย โดยเปลี่ยน date เป็น enddate ล่าสุด แทน
จะได้ current_enddate เป็น overdue.date ครั้งสุดท้าย (record ล่างสุด)
ที่เหลือก็แค่ใช้คำสั่ง MySQL ไม่ว่าจะเป็น SELECT/UPDATE
https://www.w3schools.com/php/php_mysql_select.asp
https://www.w3schools.com/php/php_mysql_update.asp
ประวัติการแก้ไข 2020-10-06 12:41:54
Date :
2020-10-06 12:39:48
By :
PhrayaDev
ผมลองทำตัวระบบนัดหมายแบบจขกท.มาให้ดูแล้ว ทำแบบง่ายๆเลยนะ เน้นๆส่วนสำคัญคือเลื่อนวันที่สิ้นสุด
จขกท.ลองเอาไป import sql แล้วทดลองเล่นดูนะว่าใช่แบบนี้ไหม? (ตอบด้วย)
เงื่อนไขคือต้องรันบน PHP 7.0+ หรือใหม่กว่า เพราะผมขี้เกียจโค้ดแบบเก่า มันยาว.
Code (SQL)
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
DROP TABLE IF EXISTS `appointment`;
CREATE TABLE IF NOT EXISTS `appointment` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`start_date` date DEFAULT NULL,
`end_date` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
DROP TABLE IF EXISTS `appointment_track`;
CREATE TABLE IF NOT EXISTS `appointment_track` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`appointment_id` int(11) NOT NULL COMMENT 'refer to appointment.id',
`previous_end_date` date DEFAULT NULL,
`current_end_date` date DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `appointment_id` (`appointment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
appointment.sql import ใส่ฐานข้อมูล test_appointment หรือชื่ออื่นก็ได้แต่ต้องแก้ config ให้ถูกด้วย
Code (PHP)
<?php
/**
* Escape HTML using `htmlspecialchars()` with `ENT_QUOTES`.
*
* @param string $string
* @return string
*/
function escHtml(string $string): string
{
return htmlspecialchars($string, ENT_QUOTES);
}// escHtml
/**
* Get POST value from input name and escape HTML.
*
* @param string $name The input name.
* @return string
*/
function inputValue(string $name = '', $default = null): string
{
if (isset($_POST[$name])) {
return escHtml($_POST[$name]);
}
if (!is_null($default) && is_string($default)) {
return $default;
}
return '';
}// inputValue
functions.php
Code (PHP)
<?php
$user = 'user';
$password = 'pass';
$dbname = 'test_appointment';
$dbhost = 'localhost';
$options = [
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::ATTR_DEFAULT_FETCH_MODE => \PDO::FETCH_OBJ,
];
try {
$Dbh = new PDO('mysql:host=' . $dbhost . ';dbname=' . $dbname, $user, $password, $options);
} catch (\Exception $ex) {
echo 'Connection failed: ' . $ex->getMessage();
exit();
}
require 'functions.php';
config.php (ปรับแต่งค่าต่างๆของคุณเองด้วยนะ อย่าลอกอย่างเดียว.)
Code (PHP)
<?php
require 'config.php';
$sql = 'SELECT * FROM `appointment` ORDER BY `id` ASC';
$Sth = $Dbh->prepare($sql);
$Sth->execute();
$result = $Sth->fetchAll();
$Sth->closeCursor();
unset($Sth);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Simple appointment</title>
<style>
table {
border: 1px solid #ccc;
border-collapse: collapse;
width: 100%;
}
table th,
table td {
border: 1px solid #ccc;
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<h1>Simple appointment</h1>
<a href="new.php">Add</a>
<form method="post" action="delete.php">
<table>
<thead>
<tr>
<th></th>
<th>ID</th>
<th>Name</th>
<th>Start</th>
<th>End</th>
</tr>
</thead>
<tbody>
<?php
if (isset($result) && is_array($result) && !empty($result)) {
foreach ($result as $row) {
?>
<tr>
<td><input type="checkbox" name="id[]" value="<?php echo $row->id; ?>"></td>
<td><?php echo $row->id; ?></td>
<td><a href="edit.php?id=<?php echo $row->id; ?>"><?php echo escHtml($row->name); ?></a></td>
<td><?php echo $row->start_date; ?></td>
<td><?php echo $row->end_date; ?></td>
</tr>
<?php
}// endforeach;
unset($row);
} else {
?>
<tr>
<td colspan="5">No data</td>
</tr>
<?php
}
unset($result);
?>
</tbody>
</table>
<button type="submit" name="action" value="delete" onclick="alert('ยังไม่มีจ้า');">Delete</button>
</form>
</body>
</html>
index.php
Code (PHP)
<?php
require 'config.php';
if ($_POST) {
$name = ($_POST['name'] ?? '');
$start_date = ($_POST['start_date'] ?? '');
$end_date = ($_POST['end_date'] ?? '');
$sql = 'INSERT INTO `appointment` (`name`, `start_date`, `end_date`) VALUES (:name, :start_date, :end_date)';
$Sth = $Dbh->prepare($sql);
$Sth->bindValue(':name', $name);
$Sth->bindValue(':start_date', $start_date);
$Sth->bindValue(':end_date', $end_date);
$result = $Sth->execute();
$id = $Dbh->lastInsertId();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Simple appointment</title>
<style>
table {
border: 1px solid #ccc;
border-collapse: collapse;
width: 100%;
}
table th,
table td {
border: 1px solid #ccc;
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<?php
if (isset($result) && $result === true && isset($id)) {
echo 'Insert successfully. (ID ' . $id . ').<br>' . PHP_EOL;
}
?>
<form method="post">
<table>
<tbody>
<tr>
<td>Name:</td>
<td><input type="text" name="name" value="<?php echo inputValue('name'); ?>" required=""></td>
</tr>
<tr>
<td>Start date:</td>
<td><input type="date" name="start_date" value="<?php echo inputValue('start_date'); ?>" required=""></td>
</tr>
<tr>
<td>End date:</td>
<td><input type="date" name="end_date" value="<?php echo inputValue('end_date'); ?>" required=""></td>
</tr>
<tr>
<td></td>
<td><button type="submit" name="action" value="save">Save</button></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
new.php
Code (PHP)
<?php
require 'config.php';
$id = ($_GET['id'] ?? 0);
$sql = 'SELECT * FROM `appointment` WHERE `id` = :id';
$Sth = $Dbh->prepare($sql);
$Sth->bindValue(':id', $id, \PDO::PARAM_INT);
$Sth->execute();
$resultRow = $Sth->fetchObject();
$Sth->closeCursor();
unset($sql, $Sth);
if ($_POST && is_object($resultRow) && !empty($resultRow)) {
$previous_end_date = ($_POST['previous_end_date'] ?? '');
$current_end_date = ($_POST['current_end_date'] ?? '');
$sql = 'UPDATE `appointment` SET `end_date` = :end_date WHERE `id` = :id';
$Sth = $Dbh->prepare($sql);
$Sth->bindValue(':id', $id);
$Sth->bindValue(':end_date', $current_end_date);
$result = $Sth->execute();
$Sth->closeCursor();
unset($sql, $Sth);
if ($result === true) {
// if update success.
// insert to appointment_track
$sql = 'INSERT INTO `appointment_track` (`appointment_id`, `previous_end_date`, `current_end_date`) VALUES (:appointment_id, :previous_end_date, :current_end_date)';
$Sth = $Dbh->prepare($sql);
$Sth->bindValue(':appointment_id', $id);
$Sth->bindValue(':previous_end_date', $previous_end_date);
$Sth->bindValue(':current_end_date', $current_end_date);
$saveTrackResult = $Sth->execute();
$Sth->closeCursor();
unset($sql, $Sth);
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Simple appointment</title>
<style>
input[readonly] {
cursor: not-allowed;
}
table {
border: 1px solid #ccc;
border-collapse: collapse;
width: 100%;
}
table th,
table td {
border: 1px solid #ccc;
padding: 5px;
text-align: left;
}
</style>
</head>
<body>
<h1>Postpone an appointment</h1>
<?php
if (!is_object($resultRow) || empty($resultRow)) {
echo 'Not found selected item!<br>' . PHP_EOL;
}
if (isset($result) && $result === true) {
echo 'Update successfully.<br>' . PHP_EOL;
if (isset($saveTrackResult) && $saveTrackResult === true) {
echo 'Insert changes to `appointment_track` successfully.<br>' . PHP_EOL;
}
}
if (is_object($resultRow) && !empty($resultRow)) {
?>
<form method="post">
<table>
<tbody>
<tr>
<td>Name:</td>
<td><input type="text" name="name" value="<?php echo inputValue('name', $resultRow->name); ?>" readonly=""></td>
</tr>
<tr>
<td>Start date:</td>
<td><input type="date" name="start_date" value="<?php echo inputValue('start_date', $resultRow->start_date); ?>" readonly=""></td>
</tr>
<tr>
<td>Current End date:</td>
<td><input type="date" name="previous_end_date" value="<?php echo inputValue('previous_end_date', $resultRow->end_date); ?>" readonly=""></td>
</tr>
<tr>
<td>New End date:</td>
<td><input type="date" name="current_end_date" value="<?php echo inputValue('current_end_date'); ?>" required=""></td>
</tr>
<tr>
<td></td>
<td><button type="submit" name="action" value="save">Save</button></td>
</tr>
</tbody>
</table>
</form>
<?php
}// endif; found
?>
</body>
</html>
edit.php
ทั้งหมดจะมี 6 ไฟล์
ถ้าลองเล่นแล้วใช่เลย แบบนี้ที่ต้องการ คุณก็ต้องทำความเข้าใจโค้ด อ่านโค้ด เปรียบเทียบชื่อคอลัมน์กับงานของคุณเอง
อย่าลอกอย่างเดียว!!!!!
แล้วก็เลิกใช้ mysql_xxx function ได้แล้ว เคยบอกไปแล้วนะ เขาเลิกใช้กันมานานแล้วครับ
ประวัติการแก้ไข 2020-10-06 13:14:15
Date :
2020-10-06 13:01:07
By :
mr.v
Code (PHP)
if ($_POST['NewDate'] != $_POST['EndDate']) {
$objConnect = mysql_connect("localhost","root","12345678") or die("Error Connect to Database");
$objDB = mysql_select_db("project");
$strSQL = "INSERT INTO sliding_date(reference_id,previous_enddate,current_enddate) SELECT ID,EndDate,'".$_POST["EndDate"]."' FROM borrowreturn WHERE ID='".$_GET["ID"]."'";
$objQuery = mysql_query($strSQL);
}
if ($_POST['NewDate'] != $_POST['EndDate']) {
$objConnect = mysql_connect("localhost","root","12345678") or die("Error Connect to Database");
$objDB = mysql_select_db("project");
$strSQL = "INSERT INTO borrowreturn(NewDate) SELECT previous_enddate FROM sliding_date WHERE ID='".$_GET["ID"]."'";
$objQuery = mysql_query($strSQL);
}
ขอบคุณทุกความคิดเห็นนะคะ ตอนนี้เก็บประวัติการเลื่อนได้แล้ว ถามอีกได้ไหมคะถ้าอยากเรียงลำดับทุกครั้งที่เลื่อนด้วยต้องทำยังไงคะ
# เลข 12 คือ reference_id
ถ้าอยากเปลี่ยนจาก reference_id เป็นลำดับของตัวนั้นๆที่เลื่อนทำไงดีค้า
เช่น
1
2
3
ประวัติการแก้ไข 2020-10-08 09:37:06
Date :
2020-10-08 09:35:08
By :
Arreeya2116
Load balance : Server 04