在我的表的“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());
任何想法?
答案 0 :(得分: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'
答案 1 :(得分: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());
答案 2 :(得分:0)
您将$last
的值作为数组。因此,您必须像以下一样提供查询
$updtsql = "UPDATE affiliate_income SET `id_user`=".$row_user_code['id_user']."WHERE id_income =".$last['id_income'];