更新当前行

时间:2013-04-11 17:25:50

标签: php mysql database

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

    }

?>

1 个答案:

答案 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