我有一个“订单”列表,包括产品名称,描述等,其中一个字段是数量,位于可编辑的文本框中,旁边是更新按钮(具有唯一的从DB中提取的该行的ID)。现在,当按下更新按钮时,我希望更新该产品的数量。但是我在获取正确的更新数量以与该行的ID匹配时遇到问题。
我可以看到问题是我设置$ quantity1变量只是在IF语句中拉出的最后一个结果,但我想不出如何让它与我点击的行相关联。以下是代码的一部分:
echo "<td>".$row['uName']."</td>";
echo "<td>".$row['prodID']."</td>";?>
<form method="post" action="reserved.php">
<td><input name="quantity1" type="text" id="quantity1" size="1" value='<?= $qty ?>' />
<td><input name="order2" id="order2" type="submit" class="button_add" value='<?= $row['ID']?>' /></td><?
echo "</tr>";
}
}elseif(!empty($studyDir) && $rowCount == 0){
?>
<?
}
}
if (isset($_POST['order2'])){
$order2 = $_POST['order2'];
$quantity1 = $_POST['quantity1'];
\\echo $quantity1;
$link3 = mysql_connect('localhost', '******', '******');
$SQL1 = "UPDATE ybsinter_stock.reservedStock SET qty = $quantity1 WHERE ID = '$order2'";
$result1 = mysql_query($SQL1);
mysql_close($link3);
unset($quantity1);
unset($order2);
header("Location:reserved.php");
}
?>
答案 0 :(得分:0)
我看不到您的表单结尾,即没有&lt; \ form&gt;。 另请注意,在表格中声明表单(完全包含在td中除外)是错误的HTML,通过W3C validator运行代码。
还可以尝试使用PHP heredocs输出带有嵌入数据的HTML块....
echo <<<EOF
<tr>
<td>{$row['uName']}</td>
<td>{$row['prodID']}</td>
<td>
<form method="post" action="reserved.php">
<input name="quantity1" type="text" id="quantity1" size="1" value="{$qty}" />
// style this button right with CSS if you want ...
<input name="order2" id="order2" type="submit" class="button_add" value="{$row['ID']}" />
</form>
</td>
</tr>
EOF;
上述表单只会使用您感兴趣的ID向您的脚本提交数据..
您的SQL查询似乎大致正确,但请注意SQL injection - 请将您的变量绑定到查询中,而不是插入它们。使用mysqli或PDO库而不是过时的基本mysql函数。
$mysqli = new mysqli( /* your connection params here */ );
$sql1 = 'UPDATE ybsinter_stock.reservedStock SET qty = ? WHERE ID = ?';
$stmt = $mysqli->query( $sql1);
$stmt->bind_param( 'sd', $quantity1, $order2);
$result = $stmt->execute();