如何在php中生成升序id

如何在php中生成升序id,php,mysql,database,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 bor

这个代码不是上升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);
    }

?> 

它将id显示为16,因为表属性id设置为自动递增

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

在该表中插入新行之前,请编写select查询

$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);

我希望这将解决您的查询…

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

.
.
.
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);

    }
.
.
.
。
.
.
elseif(isset($\u GET['aksi'])和&$\u GET['aksi']=='tambah'){
$daftar=$db->tampilData();
$id=计数($daftar)+1;
如果(计数($daftar)>0){
$temp=1;
止赎($daftar作为$row){
如果($row['id']!=$temp++){
$id=$temp;中断;
}
}
}
回声“

NAMAY你知道什么,我真的很乐意帮助你,但是当我看到你的代码没有缩进正确,我不能继续阅读你的代码!这可能是为什么你认为这是一个问题?"?您在数据库中设置了id自动递增。这将自动递增。我在数据库中设置了id自动递增,但仍不递增。我在数据库中设置了id自动递增,但仍不递增。您能看到表中编辑的代码可能错了吗?如果添加行并删除行,自动递增编号将不会重置。您将始终获取一个唯一id,您从未使用该id自动递增。除非您可以从mysql服务器重置它。但不会重新开始。函数tampilData(){$sql=“select*from tb_barang”;$result=mysql_query($sql);$id=count($result)+1;if(count($result)>0){$data=1;while($rows=mysql_fetch_assoc($result)){if($rows['id']!=$data++){$id=$data;break;}}}}}$sql=“插入tb_-barang(id,nama,email,pesan)值('$id','$nama',''email','''$pesan')”;mysql_查询($sql);尝试使用反引号…如..$sql=“插入
`tb-barang`
`id`
`nama`
`email`
`pesan`
)值('$id','$nama','$email','$pesan')”),如果错误仍然存在,则打印查询并在phpmyadmin sql编辑器中运行打印的查询,并查看它给出的错误。。