weixin_42319201 2009-07-25 17:03
浏览 301
已采纳

mysql分页问题

[code="php"]
mysql_connect("localhost","root","123456") or die(mysql_error);
mysql_select_db("zllll");
$sql="select * from newusers where name_id like '$name' limit m,n";
$totalpage ="";
$result=mysql_query($sql);
$count=mysql_num_rows($result);//查询总数

[/code]

此语句的$count获得的数值就是n的值,而我想既指定查询行,又能获得查询总记录数,应该怎么写?
[b]问题补充:[/b]
:o 我想做AJAX分页,大致思想是用AJAX获取总记录数和指定查询行的记录,
前提是分页不想写在PHP里
[b]问题补充:[/b]
我是打算获取总记录数后,javascript来生成页码,页码用AJAX实现获取数据

不用PHP计算,AJAXget过去时就指定了;
$page= isset($_GET['page'])?intval($_GET['page']):1;
[b]问题补充:[/b]
所以我只需要同时知道总记录数(这样就可以计算分多少页了)和得到指定查询行的内容(这样就可以在页面内展现内容)
[b]问题补充:[/b]
刚刚试了下用MYSQL查2次实现了上面所说的功能
(1次查总数,1次查指定行)`但是不是
$sql="select count(name_id) from newusers where name_id like '$name'";

而是$sql="select name_id from newusers where name_id like '$name'";

不知道为什么网上找的都是说count(*),但是我没得到总记录数```` :x
[b]问题补充:[/b]
[quote]不是查找name_id吗?
1.select count(name_id) from newusers where name_id like '$name'

2.select count(*) from newusers where name_id like '$name'

两者都一样的作用,但听说1快于2[/quote]

上面2者我使用都没得到总记录数,
我用的是
[code="PHP"]select name_id from newusers where name_id like '$name'

$result=mysql_query($sql);

$count=mysql_num_rows($result);//查询总数 [/code]

然后再写一个查询语句查"select * from newusers where name_id like '$name' limit m,n"; :x ``

[quote]'$name' 不是用加号连的吗,[/quote]
PHP连接字符串用.`而不是+了`我这里的m,n就是在引号外用.连接的`嘿嘿 ,不然要报错[code="PHP"]"select * from newusers where name_id like '$name' limit "$m.",".$n;

[/code]
我是这样写的不知道还有没更好的方法

[b]问题补充:[/b]
[quote]"select * from newusers where name_id like '$name' limit m,n";

有结果吗[/quote]

有啊:)大致完成了我的想法,功能也实现了,只是不知道有没更好的查询方式`:roll:像这种如果可以一次查到就安逸了`
[b]问题补充:[/b]
[quote]SELECT a.*,b.* FROM newusers a,(SELECT count(*) FROM newusers a where name_id like '$name') b where name_id like '$name' limit m,n;[/quote]

这里的a和b是什么?不是很明白`
[b]问题补充:[/b]
[quote]SELECT a.*,b.* FROM newusers a,(SELECT count(*) FROM newusers a where name_id like '$name') b where name_id like '$name' limit m,n; [/quote]

如何取总记录数呢?

我试了下,只得到了查询的指定内容,``总记录数在这里应该如何取?
[b]问题补充:[/b]
[quote]SELECT a.*,b.con FROM newusers a,(SELECT count(*) con FROM newusers a where name_id like '$name') b where name_id like '$name' limit m,n;[/quote]

乖乖,终于明白点点了``` :idea:

  • 写回答

11条回答 默认 最新

  • fdsafds 2009-07-25 21:45
    关注

    总记录数 查询结果的最后一个.

    [code="sq"]SELECT a.*,b.con FROM newusers a,(SELECT count(*) con FROM newusers a where name_id like '$name') b where name_id like '$name' limit m,n;[/code]

    con就是

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(10条)

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料