大家好!请教个问题,数据库表有两个,类似于入库和库存(sb_input、sb_kc),两个表的ID字段都是是unsigned ,auto_increment,现在我是想入库的时候数据也写入到sb_kc表中,sb_kc表是新建的,但是在之前做入库测试的时候对sb_input输入了很多测试数据,导致现在写入sb_kc的数据ID和sb_input不一致,这样在做出库的时候就很困难了,如何做到数据一致呢? 

解决方案 »

  1.   

    通常是在sd_input先写,生成数据id后,用mysql_insert_id读到这个生成的数据id,再作为普通数据写到sd_kc里的,不会让sd_kc自动生成。
      

  2.   

    那请问,比如在插入sd_input数据后,ID值产生,以下是我写入sb_input的代码,不知道用得对不对,我该如何调用ID并写入sb_kc中,<?php
    if ($_GET['act'] == "add") {
    $name = $_POST["name"];
    $model = $_POST["model"];
    $number = $_POST["number"];
    $result = $db->query("select * from  `".$prefix."input`");
    $rs = mysql_fetch_array($result);
    if (empty ($bjname)) {
    echo ("<script type='text/javascript'>alert('请填写完整');history.go(-1);</script>");
    exit;
    } else {
    $db->insert("INSERT INTO  `".$prefix."input` (`name`,`model`,`number`) VALUES('".$name."','".$model."','".$number."')");
    //echo "ID is: ".mysql_insert_id();echo ("<script type='text/javascript'>alert('操作完成!');history.go(-1);</script>");
    exit;
    }
    ?>
      

  3.   

    if ($_GET['act'] == "add") {
        $name = $_POST["name"];
        $model = $_POST["model"];
        $number = $_POST["number"];
        $result = $db->query("select * from  `".$prefix."input`");
        $rs = mysql_fetch_array($result);    
        if (empty ($bjname)) {
        echo ("<script type='text/javascript'>alert('请填写完整');history.go(-1);</script>");
            exit;
        } else {
            $db->insert("INSERT INTO  `".$prefix."input` (`name`,`model`,`number`) VALUES('".$name."','".$model."','".$number."')");
        //echo "ID is: ".mysql_insert_id();
        $id =mysql_insert_id();//获取刚刚插入数据的id;
       $db->inser("insert into ".$prefix."kc"(ID,...)value(".(int)$id.",...");echo ("<script type='text/javascript'>alert('操作完成!');history.go(-1);</script>");
            exit;
        }
      

  4.   

    先将类型改为ID非自增方式然后再手工将数据同步,完成后,再将类型改为ID自增
      

  5.   


    $id =mysql_insert_id();//获取刚刚插入数据的id;
    echo "$id";echo 出来的ID为0,又检查了一篇代码,感觉没有错!很奇怪!