如何在php中提升id

时间:2013-11-27 05:09:33

标签: php mysql database

这段代码没有提升id。我们有id 1,2,3,15。当添加下一条记录时,读取ID为16.所以如何解决这个问题呢? id必须1,2,3,4,5等

    <?php
include"class_koneksi.php";
$db=new database();
$db->konek();


    if(empty($_GET['aksi'])){

        $daftar=$db->tampilData();
            echo"<table border=1>
                <tr>
                    <td>Id</td>
                    <td>Nama</td>
                    <td>Email</td>
                    <td>Pesan</td>
                    <td>Edit</td>
                    <td>Hapus</td>
                </tr>";
        foreach($daftar as $data){
            echo" <tr>
                    <td>".$data['id']."</td>
                    <td>".$data['nama']."</td>
                    <td>".$data['email']."</td>
                    <td>".$data['pesan']."</td>
                    <td><a href='?aksi=edit&id=$data[id]'>edit</a></td>
                    <td><a href='?aksi=hapus_data&id=$data[id]'>Hapus</a></td>
                </tr>";
        }
        echo"</table> <br> <a href='?aksi=tambah'>TAMBAH</a>";


    }elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah'){
        echo"<br>
        <form method=POST action='?aksi=tambah_data'>
            <table>

                <tr><td>Nama</td><td><input type=text name='nama'></td></tr>
                <tr><td>Email</td><td><input type=text name='email'></td></tr>
                <tr><td>Pesan</td><td><input type=text name='pesan'></td></tr>
                <tr><td></td><td><input type=submit value='simpan'></td></tr>
            </table>
        </form>
        ";

    }elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah_data'){
        $id= isset($_POST['id']);
        $nama=$_POST['nama'];
        $email=$_POST['email'];
        $pesan=$_POST['pesan'];
        $db->tambahData($id,$nama,$email,$pesan);

    }elseif(isset($_GET['aksi']) && $_GET['aksi']=='edit'){
        $id=$_GET['id'];
        echo"<br>
            <form method=POST action='?aksi=update_data'>
                <table>
                    <tr><td>Id</td><td><input type=text name='id' value='".$db->bacaData('id',$id)."'></td></tr>
                    <tr><td>Nama</td><td><input type=text name='nama' value='".$db->bacaData('nama',$id)."'></td></tr>
                    <tr><td>Email</td><td><input type=text name='email' value='".$db->bacaData('email',$id)."'></td></tr>
                    <tr><td>Pesan</td><td><input type=text name='pesan' value='".$db->bacaData('pesan',$id)."'></td></tr>
                    <tr><td></td><td><input type=submit value='simpan'></td></tr>
                </table>
            <input type='hidden' name='id' value='".$db->bacaData('id',$id)."'>
            </form>
        ";

    }elseif(isset($_GET['aksi']) && $_GET['aksi']=='update_data'){
        $id=$_POST['id'];
        $nama=$_POST['nama'];
        $email=$_POST['email'];
        $pesan=$_POST['pesan'];
        $db->updateData($id,$nama,$email,$pesan);

    }elseif(isset($_GET['aksi']) && $_GET['aksi']=='hapus_data'){
        $id=$_GET['id'];
        $db->hapusData($id);
    }

?> 
你能告诉我这段代码错在哪里吗? 你能帮我解决这个问题吗?感谢

3 个答案:

答案 0 :(得分:2)

删除显示16的表的自动增量属性。

在该表中插入新行之前,请编写一个选择查询。

$sql = "select * from `table_name`";
$result = mysql_query($sql);

$id=count($result)+1;
if(count($result)>0){
   $temp = 1;
   while($row = mysql_fetch_assoc($result)){
       if($row['id']!=$temp++){
           $id=$temp; break;
       }

   }
}

$sql = "insert into `table_name` (`id`,`..`,`..`) values('"$id.."','..','..')";
mysql_query($sql);

我希望这会解决您的问题......

答案 1 :(得分:0)

在表属性中将id显示为16因为Id设置为自动增量

答案 2 :(得分:0)

首先从您遇到此问题的相应数据库表中删除id的自动增量。然后用您的代码替换此代码部分。

.
.
.
elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah'){
        $daftar=$db->tampilData();
        $id=count($daftar)+1;
        if(count($daftar)>0){
           $temp = 1;
           forech($daftar as $row){
               if($row['id']!=$temp++){
                   $id=$temp; break;
               }

           }
        }
        echo"<br>
        <form method=POST action='?aksi=tambah_data'>
            <table>

                <tr><td>Nama</td><td><input type=text name='nama'><input type="hidden" name='id' value="<?php echo $id ?>"></td></tr>
                <tr><td>Email</td><td><input type=text name='email'></td></tr>
                <tr><td>Pesan</td><td><input type=text name='pesan'></td></tr>
                <tr><td></td><td><input type=submit value='simpan'></td></tr>
            </table>
        </form>
        ";

    }elseif(isset($_GET['aksi']) && $_GET['aksi']=='tambah_data'){
        $id= $_POST['id'];
        $nama=$_POST['nama'];
        $email=$_POST['email'];
        $pesan=$_POST['pesan'];
        $db->tambahData($id,$nama,$email,$pesan);

    }
.
.
.

我希望这能解决你的要求..