$sql="SELECT count(*) as num FROM 表 WHERE type=2 or type=15 ORDER BY id desc LIMIT 0, n";
$result = mysql_db_query(数据库, $sql);
$arr=mysql_fetch_array($result);
$num=$arr['num'];echo $num; //这就是符合条件的总数目
$result = mysql_db_query(数据库, $sql);
$arr=mysql_fetch_array($result);
$num=$arr['num'];echo $num; //这就是符合条件的总数目
楼主这样写会有问题吗?
$sql="SELECT * FROM 表 WHERE type=2 or type=15 ORDER BY id desc LIMIT 0, n";
$result = mysql_db_query(数据库, $sql);
$num=mysql_num_rows($result);当然其中的n要是真实值,或是$n。
搂主的意思是:
表有100条记录,他想从前50条来挑选符合条件(type=2 or type=15 )的纪录,他想找这个50怎么限制。
而limit只限制挑选以后的纪录,不能限制所挑选目标的范围
这只是得出整个表中前40个符合条件的记录,也就是说最后num总是40另外用count(*)也是得出整个表符合条件的记录数我想用临时表会提高些效率,先把这40个记录生成一张临时表,再得出符合条件的记录数会容易些,不过具体代码不太清楚,希望大家帮忙!
要有一个自动增加的字段ID
先求出目前最大ID号.
得出目前第50位的ID号,在上面查询的时候加入ID判断 ..where id >= $id_50是否可以?
$seek=mysql_data_seek($sql1,40);
$row=mysql_fetch_row($seek); //这两句可能不对,怎么取第40个记录的id值?
$id=$row[0];//id是第一个字段
$sql2="SELECT * FROM 表 WHERE type=2 or type=15 and id>=$id ORDER BY id desc;
$result1 = mysql_db_query($dbname, $sql2);
$num=mysql_num_rows($result1);
CREATE TEMPORARY TABLE temp select * from 表 order by id desc limit 0,40
select * from temp where type=2 or type=15
select * from temp where type=2 or type=15
怎么都不行,我想把建立临时表的语句赋给变量如$sql=select * from····,可是不知用什么函数,要是大家还是看不懂我的意思,我真要怀疑我的智商了,以后再也不弄计算机了
$sql2 = "select * from temp where type=2 or type=15";
mysql_query($sql1);
$rs = mysql_query($sql2);
$sql1="SELECT * FROM 表 ORDER BY id desc ";
$seek=mysql_data_seek($sql1,40);
$row=mysql_fetch_row($seek); //这两句可能不对,怎么取第40个记录的id值?
$id=$row[0];//id是第一个字段
$sql2="SELECT * FROM 表 WHERE type=2 or type=15 and id>=$id ORDER BY id desc;
$result1 = mysql_db_query($dbname, $sql2);
$num=mysql_num_rows($result1);
也没有成功,第2、3、4行是想取第40个记录的id值,这三句有什么错误
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
$seek=mysql_data_seek($sql1,39);
$row=mysql_fetch_row($seek); //这两句可能不对,怎么取第40个记录的id值?
$id=$row[0];//id是第一个字段
$sql2="SELECT * FROM 表 WHERE type=2 or type=15 and id>=$id ORDER BY id desc;
$result1 = mysql_db_query($dbname, $sql2);
$num=mysql_num_rows($result1);
========================================================================
还是用临时表吧!$sql1 = "CREATE TEMPORARY TABLE temp_tbl select * from 表 order by id desc limit 0,40";
$sql2 = "select * from temp_tbl where type=2 or type=15";
mysql_query($sql1);
$rs = mysql_query($sql2);
$res = mysql_fetch_array($rs);
1,使用临时表
2,取出40条记录以后来个遍历判断赋值到新的数组
更正一个小问题
........ limit 0,40 <---- 这里据我理解应该是39不要请言放弃,慢慢调试,随时叫个断点 echo $sdf;exit; 通过了继续调试下面