2013-10-25 101 views
0

我需要從mem_count等於2的表中獲取數據,然後在最後一個unique_id之後將該數據插入到另一個表中。如何顯示一個表中的數據,然後將該數據插入到php中的另一個表?

這裏是我的代碼:

$mem_count2=mysql_query("SELECT mem_count,mem_id FROM member_status WHERE mem_count = 2 order by mem_id ASC"); 

if(mysql_num_rows($mem_count2)==0){ 

     die(mysql_error()); 
    } 
else{ 

      $start_value=00; 
    // $start_value dynamically comes from other table which i am not mentioning here 
     // $start_value can starts from any number For Eg. 2, 5. 

     while ($row=mysql_fetch_array($mem_count2)) { 

     $uniq_code="PHR-" . str_pad((int) $start_value, 2, "0", STR_PAD_LEFT); 


     //if mem_id already inserted then use IGNORE in INSERT i.e INSERT IGNORE 

      $cql = "INSERT IGNORE INTO member_code (mem_id, temp_code,unique_code) values ('".$row['mem_id']."','".$row['mem_count']."','".$uniq_code."')"; 

      mysql_query($cql) or exit(mysql_error()); 

     $start_value++; 

     } 
    } 

它運行平穩,但有時我得到這個輸出:

+------------+-------------+ 
| mem_id  | unique_code | 
+------------+-------------+ 
| 1   | PHR-01  | 
+------------+-------------+ 
| 5   | PHR-02  | 
+------------+-------------+ 
| 3   | PHR-04  | 
+------------+-------------+ 

有些問題肯定是在INSERT忽略查詢我已經mem_id爲UNIQUE 。請糾正這一點,因爲我完全陷入了它!

Member_code結構

+------------+-------------+-----+ 
| mem_id  | unique_code | Id | 
+------------+-------------+-----+ 
| 1   | PHR-01  | 1 | 
+------------+-------------+-----+ 
| 5   | PHR-02  | 5 | 
+------------+-------------+-----+ 
| 3   | PHR-04  | 3 | 
+------------+-------------+-----+ 
+0

警告,mysql_ *函數已被棄用。繼續使用PDO。 – Quantastical

+1

我知道這一點,但現在我只想使用它! –

+0

這很好。只是爲其他訪問者指出來,所以他們知道不要使用你的邏輯,一旦這些功能從未來版本的PHP中刪除,這些邏輯就會中斷。 – Quantastical

回答

1

這可能是因爲你在這一行

mysql_query($cql) or exit(mysql_error());

,然後你的遞增變量將遞增爲下一個插入得到在某個時候發生錯誤。你應該測試插入,如果沒有得到錯誤,你做增量。

+0

對不起,但我沒有得到任何錯誤。事情是我越來越non-serialize獨特的ids例如。 PHR-O1,PHR-03,PHR-06! –

+0

你可以發佈你的member_code表格結構嗎? –

+0

我已經顯示了上面的表格結構。你可以看到這個! –

1

在整個代碼中,當結果存儲在$mem_count中時,您正在使用一個名爲$mem_count2的變量。

+0

是的,你是對的,但這不是主要問題!問題在INSERT IGNORE或while循環中有些不同。 –

相關問題