|
|
|
รบกวนหน่อยครับ ใช้ฐานข้อมูล MS-Access เขียน PHP เรียกข้อมูลมาเพื่อแก้ไขโดยกรองวันที่ แต่พอจะบันทึกค่าเพื่ออัพเดทข้อมูลมัน error ครับ |
|
|
|
|
|
|
|
รบกวนผู้รู้ชี้แนะด้วยครับ
โค๊ดเรียกดูข้อมูลโดยกรองวันที่ เพื่อเอามาแก้ไขข้อมูลครับ
Code (PHP)
<html>
<head>
<title>Edit by date</title>
</head>
<body>
<form name="frmSearch" method="get" action="<?php echo $_SERVER['SCRIPT_NAME'];?>">
<table width="599" border="1">
<tr>
<th>Date search (m/d/yyyy) :
<input name="txtKeyword" type="text" id="txtKeyword" value="<?php echo $_GET["txtKeyword"];?>">
<input type="submit" value="Search"> Ex. 6/13/2016</th>
</tr>
</table>
</form>
<form action="pdEditSave.php?ID=<?=$_GET["ID"]?>" name="frmEdit" method="post">
<?php
if($_GET["txtKeyword"] != "")
{
$sql=$_GET["txtKeyword"];
$strConn = new COM("ADODB.Connection") or die("Cannot start ADO");
$db = 'D:\pd\Emptest.mdb';
$strConn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db;");
$strSQL = "SELECT * FROM EmpJobs where Date=#$sql#" ;
$objRec = $strConn->Execute($strSQL);
?>
<table width="800" border="1">
<tr>
<th width="91"> <div align="center">ID </div></th>
<th width="91"> <div align="center">Date </div></th>
<th width="120"> <div align="center">Time </div></th>
<th width="198"> <div align="center">MC </div></th>
<th width="200"> <div align="center">WO </div></th>
<th width="68"> <div align="center">Emp </div></th>
<th width="100"> <div align="center">Jobs </div></th>
<th width="200"> <div align="center">Date_plan </div></th>
</tr>
<?
While (!$objRec->EOF)
{
?>
<tr>
<td><div align="center">
<input type="text" name="txtDate" size="5" value="<?=$objRec->Fields["ID"]->Value;?>"></div></td>
<td><div align="center"><input type="text" name="txtCus" size="10" value="<?=$objRec->Fields["Date"]->Value;?>"></div></td>
<td align="right"><input type="text" name="txtDept" size="15" value="<?=$objRec->Fields["Time"]->Value;?>"></td>
<td align="right"><input type="text" name="txtBus" size="2" value="<?=$objRec->Fields["MC"]->Value;?>"></td>
<td align="right"><input type="text" name="txtEmp" size="20" value="<?=$objRec->Fields["Wo"]->Value;?>"></td>
<td align="right"><input type="text" name="txtMan" size="8" value="<?=$objRec->Fields["Emp"]->Value;?>"></td>
<td align="right"><input type="text" name="txtUse" size="5" value="<?=$objRec->Fields["Jobs"]->Value;?>"></td>
<td align="right"><input type="text" name="txtWage" size="10" value="<?=$objRec->Fields["Date_plan"]->Value;?>"></td>
</tr>
<!--
<tr>
<td><div align="center"><?=$objRec->Fields["ID"]->Value;?></div></td>
<td><div align="center"><?=$objRec->Fields["Date"]->Value;?></div></td>
<td><?=$objRec->Fields["Time"]->Value;?></td>
<td><?=$objRec->Fields["Mc"]->Value;?></td>
<td><div align="center"><?=$objRec->Fields["Wo"]->Value;?></div></td>
<td align="right"><?=$objRec->Fields["Emp"]->Value;?></td>
<td align="right"><?=$objRec->Fields["Jobs"]->Value;?></td>
<td align="right"><?=$objRec->Fields["Date_plan"]->Value;?></td>
<td align="center"><a href="pdEdit.php?ID=<?=$objRec->Fields["ID"]->Value;?>">Edit</a></td>
</tr>
-->
<?
$objRec->MoveNext();
}
?>
</table>
<input type="submit" name="submit" value="submit">
<?
$objRec->Close();
$strConn->Close();
$strConn = null;
}
?>
</form>
</body>
</html>
ได้ตามนนี้ครับ
แต่พอกด submit มันบันทึกค่าไม่ได้ครับ error โค๊ดนี้ครับ
โค๊ด update ข้อมูลครับ
Code (PHP)
<html>
<head>
<!-- <meta HTTP-EQUIV="Refresh" name="viewport" Content="1;URL=index.php, width=device-width, user-scalable=no," /> -->
<META HTTP-EQUIV="Refresh" Content="1;URL=List.php">
<title>Save Edit</title>
</head>
<body>
<?
$strConn = new COM("ADODB.Connection") or die("Cannot start ADO");
$db = 'D:\pd\Emptest.mdb';
$strConn->Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=$db;");
$strSQL = "UPDATE EmpJobs SET ";
$strSQL .= "Date = '".$_POST["Date"]."' ";
$strSQL .= ",Time = '".$_POST["Time"]."' ";
$strSQL .= ",MC = '".$_POST["MC"]."' ";
$strSQL .= ",Wo = '".$_POST["Wo"]."' ";
$strSQL .= ",Emp = '".$_POST["Emp"]."' ";
$strSQL .= ",Jobs = '".$_POST["Jobs"]."' ";
$strSQL .= ",Date_plan = '".$_POST["Date_plan"]."' ";
$strSQL .= "WHERE ID = ".$_GET["ID"]." ";
$flgSave = $strConn->Execute($strSQL);
If($flgSave)
{
echo("Save Done.");
}
else
{
echo("Error Save");
}
$strConn->Close();
$strConn = null;
?>
</body>
</html>
----
ขอบคุณทุกท่านมา ณ ที่นี้ด้วยนะครับ
Tag : PHP, Ms Access
|
ประวัติการแก้ไข 2016-06-23 14:00:42
|
|
|
|
|
Date :
2016-06-23 13:34:33 |
By :
rattakhet |
View :
1274 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตัวจำลอง Server เป็น
PHP Version ไหนครับ
|
|
|
|
|
Date :
2016-06-24 11:05:50 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1. Syntax error in UPDATE statement มีการเขียนรูปแบบการ update ผิด ในไฟล์ pdEditSave.php ไม่เช่นนั้นค่าที่ส่งไปอาจจะไม่ครบ
2.<form action="pdEditSave.php?ID=<?=$_GET["ID"]?>" name="frmEdit" method="post"> ผมสงสัยค่าถูกส่งด้วย method post ผมเลยไม่แน่ใจว่าปลายทางมัน GET ค่า ID ได้จริงไหม อย่างน้อยรีเช็คค่าที่ส่งไป print_r($_POST); print_r($_GET) ดูว่าค่าที่ต้องการส่งไปมันมีจริงไหม
3. ส่วนมากพอเห็นคิวรี่ การต่อสตริงของ $strSQL มันก็จะผมปัญหาคือ พวกเครื่องหมาย '(ซิงเกิ้ล) "(ดับเบิ้ล) . (จุด) ถ้าไม่ขาดมันก็เกิน ส่วนอีกปัญหาก็ตามข้อ 1 ค่าอาจส่งมาไม่ครบ
ถ้าเป็น mysql ผมก็จะ echo $strSQL ออกมาไปเช็คได้ แต่ไม่รู้ว่า MS-Access มันทำแบบไหน ถ้าลองไล่เช็คค่าไปตามขั้นก็น่าจะเจอจุดผิดครับ
|
|
|
|
|
Date :
2016-06-24 16:08:38 |
By :
apisitp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|