0

我到处寻找帮助,但似乎找不到答案。我有一个表格,人们可以在其中输入搜索词。单击提交按钮后,它链接到一个 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/>';

    }

?>
4

1 回答 1

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
于 2013-04-11T17:27:52.583 回答