【问题标题】:How to limit UPDATE when using PHP script使用 PHP 脚本时如何限制 UPDATE
【发布时间】:2012-02-01 05:29:39
【问题描述】:

我一直在尝试为我的问题找到正确的解决方案/答案,但仍然无法解决,请帮助!

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

我有 2 个表:Ratemaster 和 rates,客户可以在其中拥有 1 个具有不同 RATES 的产品。因此,客户和产品字段重复,只有费率字段发生变化。 现在表 Ratemaster 包含所有字段:id、cust_code、Product、Rate、用户,而表 Rates 只有:id、cust_code、Rate、用户。 - 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());}

【问题讨论】:

    标签: php mysql


    【解决方案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) 
    

    Rates 有 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());
    

    【讨论】:

    • 嗨 Siva,感谢您的回复,但是您添加 AND 没有任何效果,这与我在 WHERE 子句中的条件相同。
    • 我无法理解你的问题。您能否添加一些示例数据来解决该问题。这将非常有用。
    • 嗨 Siva,Ratemaster 有:3 条记录(id:1, cust_code:1231, Product:Clay, Rate:0, user:user1) (id:1, cust_code:1231, Product:Clay, Rate:0, user:user1) (id:1, cust_code:1231, Product:Clay, Rate:0, user:user1) 而 Table Rates 有 3recs : (id:1, cust_code:1231, Rate:299, user: user1) (id:1, cust_code:1231, Rate:355, user:user1) (id:1, cust_code:1231, Rate:466, user:user1), 希望这个示例数据现在有帮助,我只想要 Rates from Rates要插入到 Ratemaster 的表。
    • 嗨 Siva,非常感谢,我认为它应该可以工作,但我会尝试返回!
    • 嗨 Siva,我已经这样做了,但结果还是一样。 Ratemaster 中所有 3 条记录的 Rates 表的最后一个 Rate (466) 都会更新。 UPDATE 命令每次都在循环中用 1 个值更新所有 3 条记录。如何限制这个?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 1970-01-01
    • 2011-04-04
    相关资源
    最近更新 更多