2013-05-27 76 views
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()); 

有什么想法吗?

+1

你说的“有什么不工作”的意思是查询array.So的$last价值?什么是错误? –

+0

你的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,在第1行 – Merlin

+0

处使用'id_income = Array'附近的正确语法,但有些内容不起作用!如果有任何错误,请指出并指出! –

回答

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' 
+0

谢谢,J.我试过这个,但它不起作用 – Merlin

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()); 
+0

你是对的!我已经做出了改变,现在它工作的很完美,谢谢你,Özkan! – Merlin

+0

@Merlin你很好。 – zkanoca

0

你得到,你必须能够赋予像下面

$updtsql = "UPDATE affiliate_income SET `id_user`=".$row_user_code['id_user']."WHERE id_income =".$last['id_income'];