2013-10-25 56 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循环中有些不同。 –

相关问题