我要查询的表是从数据库中自动获得,表的数目不定,但都是以 名字_  的方式命名(表结构一样) 
我现在能将这些表的名称从数据库中读出。我的问题是怎么做才能将这些表的内容一起读出来?

解决方案 »

  1.   

    select *
    from table1
    union all
    select *
    from table2
    union all
    ...
    union all
    select *
    from tablen
    
      

  2.   

    SELECT id,title,username,fname,posttime FROM p8_fenlei_content WHERE 1 UNION ALL SELECT id,title,username,fname,posttime FROM p8_ceshi_content WHERE 1 UNION ALL SELECT id,title,username,fname,posttime FROM p8_news_content WHERE 1
    这样做只读了一个表出来,fenlei_这个表没有title,username,fname,posttime 字段还能链接查询吗?不能的话怎么只识别ceshi_和news_里面的内容?
      

  3.   

    不好意思,是全部查出来了,只是在php里面进行了分页。
    分页后的内容没有读出来,应该怎么弄啊?
      

  4.   

    PHP中你是如何进行分页的?代码是什么?
      

  5.   

    for ($n=0;$n<count($areapre);$n++) {
    //echo $areapre[$n]."<br>";
    if(substr($areapre[$n],strlen($areapre[$n])-1)=="_")
    {
    $sql="SELECT id,title,username,fname,posttime FROM {$pre}$areapre[$n]content WHERE $SQL UNION ALL"."\n".$sql;
    }
    } $sql=substr($sql,0,strlen($sql)-12)." order by posttime LIMIT 0, 1000";
    没有进行分页,但是输出网页他就是只显示30几行数据。
    我人工数了,有50多条
      

  6.   

    调试一下,看一下$sql=substr($sql,0,strlen($sql)-12)." order by posttime LIMIT 0, 1000";
    执行完后 $sql 的内容是什么。
      

  7.   

    这些都是正确的。
    SELECT id,title,username,fname,posttime FROM p8_fenlei_content WHERE 1 UNION ALL SELECT id,title,username,fname,posttime FROM p8_ceshi_content WHERE 1 UNION ALL SELECT id,title,username,fname,posttime FROM p8_news_content WHERE 1 order by posttime desc
    这是输出的内容
    我放到phpmyadmin里面都能全部输出,只是phpmyadmin分了页。
    我没分页的话在网页上就只显示30行数据
      

  8.   

    这个SQL语句明显和你的PHP代码中的一样。至少看不到那个 order by posttime LIMIT 0, 1000 了,并且还多出来一个 desc.是否是你从你的PHP调试出来的结果?
      

  9.   

    我把那个limit给去掉了
    我就是在网页上输出$sql的内容,在复制输出的sql语句到phpmyadmin上运行,是正确的,能得到所有表的内容
    在网页上就只输出30行数据
      

  10.   

    那说明不是SQL语句的问题了,要检查你的PHP输出了。是不是你的PHP程序只输出了30行。