如何在使用PHP脚本时限制UPDATE

时间:2012-02-01 05:29:40

标签: php mysql

我一直在努力为我的问题找到正确的解决方案/答案,仍然无法绕行,请帮助!

这是我试图解决的MYSQL UPDATE,LIMIT问题。我想也许用PHP和MYSQL脚本它应该能够工作,不确定,请检查下面的代码。它正在Ratemaster表中更新Rate字段,其中包含Rates表的最后一个值。但是两个表中有3行,其中3个不同的费率在费率表中。

我有2个表:Ratemaster和rate,其中CUSTOMER可以拥有1个具有不同价格的PRODUCT。因此,客户和产品字段重复,只有费率字段发生变化。 现在表 Ratemaster 包含所有字段:id,cust_code,Product,Rate,user而Table Rate 仅包含:id,cust_code,Rate,user。 - user字段用于检查session_user。

我的php和mysql代码如下:

$con = mysql_connect("localhost","db","pwd");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
mysql_select_db("db", $con);

$user = $_SESSION['user'];

$query = "SELECT * FROM Rates";
$result = mysql_query($query)or die(mysql_error()); 

while ($line = mysql_fetch_assoc($result)) {
mysql_query("UPDATE Ratemaster, Rates SET Ratemaster.Rate = '".$line['Rate']."'  WHERE Ratemaster.user = '".$line['user']."'")or die(mysql_error());}

1 个答案:

答案 0 :(得分:1)

我在Ratemaster中添加了一个名为'rid'的字段。它应该与Rates表'id'字段匹配。还有一件事,id总是应该是唯一的。

Ratemaster有:3条记录

(id:1, cust_code:1231, Product:Clay, Rate:0, user:user1,rid:1) 
(id:2, cust_code:1231, Product:Clay, Rate:0, user:user1,rid:2) 
(id:3, cust_code:1231, Product:Clay, Rate:0, user:user1,rid:3) 

费率有3recs:

(id:1, cust_code:1231, Rate:299, user:user1) 
(id:2, cust_code:1231, Rate:355, user:user1) 
(id:3, cust_code:1231, Rate:466, user:user1)

代码:

 $con = mysql_connect("localhost","db","pwd");
 if (!$con)
    {
       die('Could not connect: ' . mysql_error());
    }
mysql_select_db("db", $con);

$user = $_SESSION['user'];

mysql_query("UPDATE Ratemaster, Rates SET Ratemaster.Rate = Rates.Rate  WHERE Ratemaster.user = '".$line['user']."' AND Ratemaster.rid=Rates.id ")or die(mysql_error());