[英]delete function delets the last record from table. js jquery.updated
[英]Only the last record in sql table is being updated from a form
我已经实现了LIKE功能,但是无论用户单击哪行的LIKE按钮,表中的最后一条记录都将得到更新。
我在这里和其他地方都看过与此类似的其他问题,并尝试了建议的补救措施,但没有任何效果。 任何帮助表示赞赏!
这将输出表,并在LIKE按钮的列中显示:
<table class="table table-bordered">
<tr>
<th>Word ID</th>
<th>User ID</th>
<th>User Name</th>
<th>Word</th>
<th>Meaning</th>
<th>Example</th>
<th>Likes</th>
</tr>';
foreach ($data as $row)
{
echo '<tr>';
foreach ($row as $value)
{
echo '<td>';
echo $value;
echo '</td>';
}
echo '<td>
<form method="POST" action="'.$_SERVER["PHP_SELF"].'">
<input type="hidden" name="LIKE" value="'.$row['wordID'].'">
<input id="'.$row['wordID'].'" type="submit" class="btn btn-success" value="LIKE">
</form>
</td>';
echo '</tr>';
}
echo '</table>';
我的更新代码是:
if($_POST['submit'])
{
$sql = "UPDATE vocab SET likes = likes+1 where wordID = '{$row['wordID']}'";
$stmt = $db->prepare($sql);
我已经尝试了所有方法,包括添加诸如此类的javascript,以将所需的ID获取到更新代码。 没运气!
echo '<script type="text/javascript">
function submitForm(){
var selectButton = document.getElementById( "'.$row['wordID'].'" );
selectButton.click();
}
</script>';
选项1:我将更改:
<input name="like" value="'.$row['wordID'].'"
type="submit" class="btn btn-success">
并且:
if (!empty($_POST['like'])) {
$sql = "UPDATE vocab SET likes = likes+1 where wordID = '".$_POST['like']."'";
$stmt = $db->prepare($sql);
...
选项2:要显示为按钮值,请尝试以下操作:
<input name="like['.$row['wordID'].']" value="LIKE"
type="submit" class="btn btn-success">
并在php文件中:
if (!empty($_POST['like'])) {
foreach ($_POST['like'] as $key => $value) {
$sql = "UPDATE vocab SET likes = likes+1 where wordID = '".$key."'";
$stmt = $db->prepare($sql);
...
}
}
选项3:
<input name="like_'.$row['wordID'].'" value="LIKE"
type="submit" class="btn btn-success">
和:
if (!empty($_POST)) {
foreach($_POST as $key => $value) {
if (substr($key, 0, 5) == 'like_') {
$sql = "UPDATE vocab SET likes = likes+1 where wordID = '".substr($key, 5)."'";
$stmt = $db->prepare($sql);
...
但是请谨慎使用SQL注入。 在执行查询或使用参数执行准备好的查询之前,应清理$ _POST ['like']值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.