weixin_42319201
2009-07-25 17:03 阅读 299
已采纳

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 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就是

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 17:06

    首先查找去所有记录的总行数

    $sql="select count(name_id) from newusers where name_id like '$name'";

    再查找指定的行.要分开的

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 17:32

    是啊 AJAX只负责传送他要那一页有东西吗;

    PHP再去计算是多少行到多少行吗?再到DB去取.

    分页不想写在PHP里

    ajax 又不能调用DB

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 18:22

    是啊,还有每页的大小

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 18:57

    [code="java"]select name_id from newusers where name_id like '$name';[/code]

    不是查找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

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 19:00

    [code="java"]不知道为什么网上找的都是说count(*),但是我没得到总记录数[/code]

    select * from newusers where name_id like '$name' limit m,n 有结果吗

    php不太懂.
    $sql="select * from newusers where name_id like '$name' limit m,n";

    '$name' 不是用加号连的吗,用java的话是这样的

    $sql="select * from newusers where name_id like '"+$name+"' limit m,n";

    不知php是不是这样的

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 20:53

    "select * from newusers where name_id like '$name' limit m,n";

    有结果吗

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 21:08

    [code="sql"]SELECT a.*,b.* FROM article a,(SELECT count(*) FROM article a) b;[/code]

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 21:14

    [code="sql"]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;[/code]

    这个可以

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 21:31

    SELECT [color=red]a[/color].*,[color=cyan]b[/color].* FROM newusers [color=red]a[/color],(SELECT count(*) FROM newusers a where name_id like '$name')[color=cyan] b[/color] where name_id like '$name' limit m,n;

    都是表的别名,b是子查询

    点赞 评论 复制链接分享
  • fdsafds fdsafds 2009-07-25 22:13

    那就确认答案,给分,要你的分真不容易. :wink:

    点赞 评论 复制链接分享

相关推荐