基本上我所拥有的是一个表单中的简单表。 目标是能够在当前金额之上添加金额。目前我的数据库中有一个包含2个外键的表。在这种情况下,位置代码和产品代码(不介意荷兰语翻译):
if(isset($_POST['submit'])){
// These both give me a undefined index error.
$locatiecode = $_POST["locatiecode"];
$productcode = $_POST["productcode"];
$input = $_POST["input"];
//I suppose the SQL query here below should work once I have fixed the other issues?
$sql2 = "UPDATE aantal SET aantal = aantal + '$input' WHERE locatiecode = $locatiecode AND productcode = productcode";
$result2 = $con->query($sql2);
}
这是提交部分。下面我有一个while循环,从表中选择数据,但再次不介意荷兰语:
<form method="post" action="">
<div style="width: 50%; margin: 0 auto; text-align: center;">
<table class="table">
<thead>
<tr>
<th>Locatiecode</th>
<th>Locatie</th>
<th>Productcode</th>
<th>Product</th>
<th>Fabriek</th>
<th>Inkoopprijs</th>
<th>Verkoopprijs</th>
<th>Aantal</th>
</tr>
</thead>
<tbody>
<?php
$sql = "SELECT * FROM locatie INNER JOIN voorraad ON locatie.locatiecode = voorraad.locatiecode INNER JOIN product ON product.productcode = voorraad.productcode";
$result = $con->query($sql);
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<th>" . $row["locatiecode"] . "</th>";
echo "<th>" . $row["locatie"] . "</th>";
echo "<th>" . $row["productcode"] . "</th>";
echo "<th>" . $row["productnaam"] . "</th>";
echo "<th>" . $row["fabrieknaam"] . "</th>";
echo "<th>" . $row["inkoopprijs"] . "</th>";
echo "<th>" . $row["verkoopprijs"] . "</th>";
echo "<th>" . $row["aantal"] . "</th>";
echo "<th><input type='text' name='input' id='aantalinvoer'></th>";
echo "<th><input type='submit' name='submit' id='submit'></th>";
echo "</tr>";
}
?>
</tbody>
</table>
</div>
</form>
所以现在发生了什么,我得到一行,每行有一个更新按钮(提交按钮)和一个输入字段。就像现在一样,名为input的输入字段无法POST。我尝试提交时,位置和产品代码为我提供了一个未定义的索引。
这是否与while循环有关?
非常感谢帮助!
答案 0 :(得分:0)
$_POST["field"]
引用表单中的相应输入字段。在您的示例中,您没有带name="locatiecode"
为了通过帖子可以访问productcode
和locatiecode
值,您应该将HTML更改为类似
echo "<th>
{$row['productcode']}
<input type=\"hidden\" name=\"productcode\" value=\"{$row['productcode']}\" />
</th>";
答案 1 :(得分:0)
并不完全明白你想做什么。
在任何这种情况下,您都必须使用locatiecode和productcode的值添加隐藏的输入。
如上所述,您的SQL代码非常不安全。