如何在php中生成升序id
这个代码不是上升id。我们有id 1,2,3,15。添加下一条记录时,读取id 16。那么如何解决这个问题呢?id必须为1、2、3、4、5等如何在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
<?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编辑器中运行打印的查询,并查看它给出的错误。。