【发布时间】:2014-08-24 10:19:26
【问题描述】:
所以我想我不明白这一点,我通常是编码的新手。我已经搜索并找不到一个很好的解释来让它在我的情况下工作。我需要从 fetch 命令中填充一个表,然后将每个结果与输入的信息更新到一个新列中。这是我的代码:
这填满了表格:
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">
这会将budgetname 的输入写入budgetname 列:
$paycheckname = mysqli_real_escape_string($con, $_POST['paycheckname']);
$budgetamount = mysqli_real_escape_string($con, $_POST['budgetamount']);
$envelopename = mysqli_real_escape_string($con, $_POST['envelopename']);
}
$sql="UPDATE envelopes SET $paycheckname='$budgetamount' WHERE envelopename ='$envelopename'";
if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
现在它只是不写任何东西。我使用 echo var_dump($envelopename)."<br>"; and echo var_dump($budgetamount)."<br>"; 尝试查看它在做什么,但 $envelopename 始终为空白。感谢您的任何帮助,您可以提供。
【问题讨论】:
-
您没有
envelopename的输入,因此不会有 post 值。如果$envelopename为空,那就是问题所在,与 MySQL 无关。在将 MySQL 拖入您的项目之前,采取较小的步骤并首先尝试构建一个工作静态表单,仅显示发布的值。这段代码有几个不相关的问题,很难为它写一个好的、完整的和(重)可用的答案。 -
我认为你需要做
$row = mysqli_fetch_array($result, MYSQLI_ASSOC)来获得一个关联数组,因为默认是数字索引......这里可能是错误的。 -
envelopename 从创建如上所示表单的数据库表信封中提取。如果我能让这更简单,请告诉我。
-
也许你应该去 PHP 文档并寻找 mysqli_result::fetch_assoc,这正是你所需要的。要了解有关 mysqli_fetch_array 的更多信息:php.net/manual/en/mysqli-result.fetch-array.php
-
@Ohgodwhy 默认类型为
mysqli_fetch_array=MYSQLI_BOTH所以它可以正常工作