我到处寻求帮助,但似乎无法找到答案。我有一个人们可以输入搜索词的表单。单击提交按钮后,它将链接到PHP页面,该页面将搜索针对我的数据库中的3个字段输入的术语。这一切都很好。我想为每个显示的结果添加一个按钮,允许我单击添加到递增的数字。
如果我在查询语句中定义要更新的行,因为它在单击按钮后重定向到自身,这是有效的。但我希望按钮更新结果中显示的记录而不是定义的记录。
显然,可以有几个返回的结果,每个都有自己的按钮,所以我希望用户能够单击附加到该记录的按钮,并更新数据库的该行中的字段。是否可以定义"当前记录"以任何方式?
以下是当前代码:
if($_POST['like']){
$add =("UPDATE Players SET played=played+1 WHERE SquadNo=11");
$result = mysql_query($add) or die(mysql_error());
}
如您所见,我此时已定义squad number 11
,但想要更新当前行。
第二个问题,在这个阶段很小,当我点击按钮增加值时,它似乎更新搜索并在增量发生后提供一组不同的结果。我该如何防止这种情况发生?
谢谢 - 我希望这是有道理的。
这是我的完整代码:
<?php
mysql_connect ("localhost", "USER","PASSWORD") or die (mysql_error());
mysql_select_db ("TABLE");
if($_POST['like']){
$add =("UPDATE Players SET played=played+1 WHERE SquadNo=11");
$result = mysql_query($add) or die(mysql_error());
}
$term = $_POST['term'];
$sql = mysql_query("select * from Players where POS like '%$term%' or POS2 like '%$term%' or POS3 like '%$term%' ");
while ($row = mysql_fetch_array($sql)){
echo 'Name: '.$row['Name'];
echo '<br/> Surname: '.$row['Surname'];
echo '<br/> Position 1: '.$row['POS'];
echo '<br/> Position 2: '.$row['POS2'];
echo '<br/> Position 3: '.$row['POS3'];
echo '<br/> Squad Number: '.$row['SquadNo'];
echo '<br/> Played: '.$row['played'];
echo '<br/><br/>';
echo'<form method="post" action="' . $_SERVER[PHP_SELF]. '">
<input type="submit" name="like" value="like"><br>
</form>';
echo '<br/><br/>';
}
?>
答案 0 :(得分:2)
您需要跟踪按钮的哪一行,例如
<form ...>
<input type="hidden" name="rowID" value="$row['record_id']" />
<input type="submit">
</form>
然后做相同的
UDPATE yourtable SET ... WHERE row_id = $row_id_from_form