【发布时间】:2014-08-23 22:16:06
【问题描述】:
这可能很简单,但我只是无法让最后一点工作。我有一个 PHP/HTML 表单。部分由查询数据库填写,部分由用户填写。除了 PHP 写入数据库中的最后一条 $sql 语句外,一切正常。基本上,表单页面的第二部分检索一些用户存储的信封,然后允许用户输入要放入该信封的金额。我需要存储该金额,但有很多信封,我需要确保输入的金额对应正确的信封。如您所见,我迷路了。
这是主要形式:
<form action="newpaycheck.php" method="post">
<div id="col2top">
<?php
include 'includes/connection.php';
echo "<select name= 'bankaccount'>";
echo '<option value="">'.'--- Bank Account ---'.'</option>';
$query = mysqli_query($con,"SELECT bankaccount FROM bankaccounts");
$query_display = mysqli_query($con,"SELECT bankaccount FROM bankaccounts");
while($row=mysqli_fetch_array($query))
{
echo "<option value='". $row['bankaccount']."'>".$row['bankaccount']
.'</option>';
}
echo '</select>';
?><br><br>
Amount: <input type="text" name="paycheckamount"><br><br>
Name: <input type="text" name="paycheckname"><br><br>
Date: <input type="text" name="normaldate">
</div>
<div id="col2bottom">
<?php
$result = mysqli_query($con,"SELECT envelopename, envelopebudget FROM envelopes");
echo "<table border='1'>
<tr>
<th>Envelope</th>
<th>Budget</th>
<th>Amount</th>
</tr>";
while($row = mysqli_fetch_array($result)) {
echo "<tr>";
echo "<td>" . $row['envelopename'] . "</td>";
echo "<td>" . $row['envelopebudget'] . "</td>";
?><td><input type="text" name="budgetamount"></td><?php;
echo "</tr>";
}
echo "</table>";
?>
<input type="submit">
</div>
</form>
</div>
这是将所有内容写入数据库的内容:
<?php
//MySQL Database Connect
include 'includes/connection.php';
// escape variables for security
$bankaccount = mysqli_real_escape_string($con, $_POST['bankaccount']);
$paycheckamount = mysqli_real_escape_string($con, $_POST['paycheckamount']);
$paycheckname = mysqli_real_escape_string($con, $_POST['paycheckname']);
$normaldate = mysqli_real_escape_string($con, $_POST['normaldate']);
$budgetamount = mysqli_real_escape_string($con, $_POST['budgetamount']);
$sql="INSERT INTO paychecks (bankaccount, paycheckamount, paycheckname, normaldate)
VALUES ('$bankaccount','$paycheckamount','$paycheckname','$normaldate')";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
$sql="ALTER TABLE envelopes ADD COLUMN $paycheckname varchar (50)";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
$sql="UPDATE envelopes SET '$paycheckname'='$budgetamount' WHERE envelopename ='$envelopename'";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
mysqli_close($con);
【问题讨论】:
-
你得到了什么错误,或者现在的结果是什么?
-
我得到的错误是:错误:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 ''rent'='25' WHERE 'envelopename'=''' 附近使用正确的语法,结果都很好,只是它没有添加值每个信封的用户输入。