我在正常运行的数据库上使用UPDATE命令有困难。
我想要做的是:
在现有数据库上,我希望使用日期选择器更新特定字段(sdate),并将该值保存到数据库中。
正在发生的事情:
我能够访问数据库(其中一个元素(row)的回显有效),但我无法获取日期选择器的值以保存到数据库中。
有谁能告诉我怎么走吗?
下面是主要的html代码:
<?php include '../include/header.php'; ?>
<?php include '../include/datepicker.php'; ?>
<?php include '../include/format.php'; ?>
<fieldset>
<legend>Presale Units in Stock</legend>
<table border=1>
<tr>
<th>Id</th>
<th>Ship Date</th>
<th>Button?</th>
</tr>
<tr>
<form>
<?php include '../include/junk.presale.mysql.php'; ?>
</table>
<button type="reset" value="Reset">Reset</button>
</form>
</tr>
</fieldset>
<br>
<?php include '../include/footer.php'; ?>下面是junk.presale.mysql.php:
<?php
// Get database credentials
require 'config.php';
$dbtable = "assembly2";
$col1 = "id";
$col4 = "sdate";
$comm = "SELECT * FROM $dbtable";
/* Create a new mysqli object with database connection parameters */
$conn= new mysqli($dbhost,$dbuser,$dbpass,$dbname);
if(mysqli_connect_errno()) {
echo "Connection Failed: " . mysqli_connect_errno();
exit();
}
// Assembly array
if ($result = $conn->query($comm)) {
/* fetch object array */
while ($row = $result->fetch_row()) {
if(($row[5]=="presale")or($row[4]!=0)) {
echo "<tr>";
echo "<td>$row[0]</td>";
echo "<td><input type=\"text\" name=\"sdate\" class=\"datepicker\"></td>";
echo "<td><input name=\"update\" type=\"submit\" id=\"update\" value=\"Update\"></td>";
if(isset($_POST["update"])){
$entry4 = $_POST["sdate"];
$cmd = "UPDATE $dbtable SET $col4=$entry4 WHERE $col1=$row[0]";
// use prepared statements to increase security
if ($stmt = mysqli_prepare($conn,$cmd)){
mysqli_stmt_execute($stmt);
}
// Close statement and connection
mysqli_stmt_close($stmt);
}
echo "</tr>";
}
}
}
/* free result set */
$result->close();
// Close statement and connection
mysqli_close($conn);
?>任何帮助都是非常感谢的!
发布于 2014-04-10 04:54:19
据我所知,您希望通过单击更新按钮来更新表的每一行。为此,您必须创建多个表单,而不是单个表单。你的逻辑不正确。使用下面的代码a希望能解决你的问题。
<?php include '../include/header.php'; ?>
<?php include '../include/datepicker.php'; ?>
<?php include '../include/format.php'; ?>
<fieldset>
<legend>Presale Units in Stock</legend>
<table border="1">
<tr>
<th>Id</th>
<th>Ship Date</th>
<th>Button?</th>
</tr>
<?php include '../include/junk.presale.mysql.php'; ?>
</table>
<br>
<?php include '../include/footer.php'; ?>这是你的另一个文件。
// Assembly array
if ($result = $conn->query($comm)) {
/* fetch object array */
while ($row = $result->fetch_row()) {
if(($row[5]=="presale")or($row[4]!=0)) {
echo "<tr>";
echo "<form id=\"form-$row[0]\" name=\"form-name-$row[0]\" method=\"post\">";
echo "<td>$row[0]</td>";
echo "<td><input type=\"text\" name=\"sdate\" class=\"datepicker\"></td>";
echo "<td><input type=\"hidden\" name=\"rec_id\" value=\"$row[0]\"></td>";
echo "<td><input name=\"update\" type=\"submit\" id=\"update\"
value=\"Update\"> </td>";
echo "</form>";
echo "</tr>";
}
}
}
if(isset($_POST["update"])){
$entry4 = $_POST["sdate"];
$rec_id = $_POST["rec_id"];
$cmd = "UPDATE $dbtable SET $col4='$entry4' WHERE $col1=$rec_id";
// use prepared statements to increase security
if ($stmt = mysqli_prepare($conn,$cmd)){
mysqli_stmt_execute($stmt);
}
// Close statement and connection
mysqli_stmt_close($stmt);
}https://stackoverflow.com/questions/22973571
复制相似问题