2010-05-18 52 views
0

你好這個代碼中有什麼錯?我已經設置它24小時更新表中的值。但問題是,如果$行是空的,然後它插入表-2值,但24小時後,它不會更新值。如何從表-2更新到表-1

我要的是它必須刪除現有的數值,並插入一個新的(隨機值),或者必須更新同一$行新的價值什麼都...

if ($row == 0){ 
    mysql_query("INSERT INTO table-1 
    (regtime,person,location,address,rank,ip,geocode) 
    SELECT NOW(),person,location,address,rank,ip,geocode FROM table-2 ORDER BY RAND() LIMIT 1"); 
} 
else{ 
    mysql_query("UPDATE table-1 SELECT regtime=NOW(), 
       person=person, 
       location=location, 
       address=address, 
       rank=rank, 
       ip=ip, 
       geocode=geocode FROM table-2 ORDER BY RAND() LIMIT 1"); 
} 

回答

0

最簡單的方法是在運行INSERT之前,刪除表1中的現有行。

我不知道你的表的主鍵是什麼。我想它的人?

DELETE FROM table-1 where person in (select person FROM table-2) 

INSERT INTO table-1 (regtime,person,location,address,rank,ip,geocode) 
SELECT NOW(),person,location,address,rank,ip,geocode FROM table-2 ORDER BY RAND() LIMIT 1 

對不起,如果我有什麼問題,我沒有使用MySQL。

+0

NOP主鍵是ID和只有一排是有這麼說的id = 1 – mathew 2010-05-18 07:07:31

0

使用REPLACE INTO,而不是INSERT INTO

0

。在你的UPDATE聲明沒有SET,這就是爲什麼沒有做任何事情。

UPDATE manual page

+0

你能告訴我在哪裏添加設置?根據我的知識,我添加了,然後刪除。 – mathew 2010-05-18 07:05:57

+0

'UPDATE table SET columnname = value WHERE condition' – nico 2010-05-18 08:08:49