21,882
社区成员
发帖
与我相关
我的任务
分享
$sql = "SELECT (count(*) + 1) AS num FROM `article` WHERE sortid=".$sortid . " AND id<" . $_GET['id'];
//执行后,的结果,就是第几个
$counts = mysql_fetch_array(mysql_query("select count(*) from table where sortid = ".$storid."";
echo $counts[0];
$sql = "SELECT * FROM `article` WHERE sortid=".$sortid . " AND id<" . $_GET['id'] . " ORDER BY id DESC LIMIT 1";/////上一条
$sql = "SELECT * FROM `article` WHERE sortid=".$sortid . " AND id>" . $_GET['id'] . " ORDER BY id ASC LIMIT 1";/////下一条
//这样子分两次查询,是常用的办法,你上面的,一下子搜索所有的数据,就失去数据库索引的意义了
//sortid id都加索引,这种查询效率会非常高
$sql = "SELECT * FROM `article` WHERE sortid=".$sortid;
$rows = $db->getRows($sql);
$m = 0;
for($i=0;$i<count($rows);$i++){
if($rows[$i]["id"] == $_GET['id']){
$m = $i+1;
$next = ($i<count($rows)-1)?$rows[$m]["id"]:"";
break;
}
}