例如:
方法一 使用程序去除重复值
$sql = 'select id from pro order by id desc limit 7'
$query = $db->query($sql)
$arr_id = array()
while($db_rec = $db->fetch_array($query)){
$arr_id[] = $db_rec['id']
}
unset($sql,$query)
$sql = 'select id from pro order by id desc limit 8
$query = $db->query($sql)
$arr_id2 = array()
while($db_rec = $db->fetch_array($query)){
$arr_id2[] = $db_rec['id']
}
unset($sql,$query)
注:此处使用数组函数去除重复值,$db 是我实例化的一个对象,query和 fetch_array 都是对象方法
$id = array_diff($arr_id2,$arr_id)
方法二: 使用sql来完成
$sql = 'select id from pro order by id desc limit 7'
$query = $db->query($sql)
$arr_id =$comma = ''
while($db_rec = $db->fetch_array($query)){
$arr_id .= $comma.$db_rec['id']
$comma = ','
}
unset($sql,$query,$db_rec)
$sql = 'select id from pro where id not in('.$arr_id.') order by id desc limit 1
$query = $db->query($sql)
$id = ''
if($db_rec = $db->fetch_array($query)){
$id = $db_rec['id']
}
unset($sql,$query,$db_rec)
方法三: 使用纯sql实现
$sql ='select id from pro where id not in(select id from pro order by id desc limit 7) order by id desc limit 1 '
$query = $db->query($sql)
$id = ''
if($db_rec = $db->fetch_array($query)){
$id = $db_rec['id']
}
unset($sql,$query,$db_rec)
注:如果你的mysql 是4 版本的话 方法三应该是不可以的 ,4不支持 子查询 我记得是
最后的$id 就是你想要的 第八个ID号 即第八大的ID值
$sql_exist="select * from ".C('blog_info')." where title='$title'"$count1 =$Info_obj->execute($sql_exist)if(empty($count1)){ $checkadmin=new Modelimport('Think.Util.Input')//调用当前Session值。 $adminuser=trim(Session::get(C('USER_AUTH_NAME')))//echo $adminuser//echo llldate_default_timezone_set("PRC")$act_time=date("Y-m-d H:i:s")$sql="insert into ".C('blog_info')." set title='$title',content='$content'"//$id=mysql_insert_id()$action="添加了id为".$id."的记录"$in_log="insert into ".C('blog_log')." set adduser='$adminuser',action='".$action."',act_time='$act_time'"$count =$Info_obj->execute($sql)$count2=$Info_obj->execute($in_log)if(!empty($count)&&!empty($count2)){ //$s_log =$Info_obj->query($sql_log)$Info_obj->commit()return $count} else{ $Info_obj->rollbackreturn 3} //return $s_log}else{ return 3}用mysql_insert_id()是在第一条数据执行之后生成的, 事务处理时 两条sql是同时进行。 这样就获取不到ID值。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)