1

在我的表的“user_id”列中,我想插入刚刚从我的页面注册的用户的 ID。这个想法是将他最近产生的收入与用户 ID 相关联,只是为了发现最终的收入双重登记。

为了做到这一点,我努力更新 user_id 列,在 income_id 具有最大值的行上,即最后产生的收入,但有些东西不起作用。我的代码是:

    $query = "SELECT max( id_income ) FROM `affiliate_income`";
$last_income = mysql_query($query, $conn) or die(mysql_error());
$last = mysql_fetch_assoc($last_income);

        $updtsql = "UPDATE affiliate_income SET `id_user`=".$row_user_code['id_user']."WHERE id_income =".$last;
        $result = mysql_query($updtsql, $conn) or die(mysql_error());

有任何想法吗?

4

3 回答 3

1

实际上,您可以在一个查询中完成,

UPDATE  affiliate_income a
        INNER JOIN (SELECT MAX(id_income) id_income FROM affiliate_income) b    
           ON a.id_income = b.id_income
SET     a.id_user = 'valueHere'
于 2013-05-27T05:14:07.643 回答
0

你得到数组的值。$last所以你必须像下面这样给出查询

$updtsql = "UPDATE affiliate_income SET `id_user`=".$row_user_code['id_user']."WHERE id_income =".$last['id_income'];
于 2013-05-27T05:18:20.583 回答
0

您尝试获取最大 id_income,但在第二个查询 (updtsql) 中,您尝试找到 id_income = 数组。此外,您不要在 WHERE 子句之前放置空格。

$query = "SELECT max( id_income ) AS ii FROM `affiliate_income`";
$last_income = mysql_query($query, $conn) or die(mysql_error());
$last = mysql_fetch_assoc($last_income);

$updtsql = "UPDATE affiliate_income SET `id_user`=".$row_user_code['id_user']." WHERE id_income =".$last['ii'];
$result = mysql_query($updtsql, $conn) or die(mysql_error());
于 2013-05-27T05:14:27.600 回答