排序/限制表列表MySQL和PHP

排序/限制表列表MySQL和PHP,php,mysql,Php,Mysql,我想选择并打印出我所有的表(到目前为止我已经得到了),然后使用``限制它,然后按表名排序,每页有10个结果 我该怎么做呢?我知道如何从表中获取数据,但我不知道如何仅使用表 到目前为止,我有: function list_tables($type){ $sql = "SHOW TABLES FROM example"; $result = mysql_query($sql); while($row = mysql_fetch_row($result)){ $table_name = $r

我想选择并打印出我所有的表(到目前为止我已经得到了),然后使用``限制它,然后按表名排序,每页有10个结果

我该怎么做呢?我知道如何从表中获取数据,但我不知道如何仅使用表

到目前为止,我有:

function list_tables($type){

$sql = "SHOW TABLES FROM example";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result)){
    $table_name = $row[0];
    echo $table_name; //edited out a lot to keep it simple
    //I'm just printing out a lot of data based on table name anyway
}
mysql_free_result($result);
}
到目前为止,它只在同一页中打印出所有的表名(+我为表名打印的额外信息),并且它得到了一个永远滚动的点。我想把它限制在每页10-20篇,而不是一页几百篇


如果有人能帮助我,我会提前向你表示感谢。非常感谢

根据页码计算偏移量和限制,然后尝试以下查询:

function list_tables($type, $offset, $limit){

$sql = "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'example' ORDER BY TABLE_NAME LIMIT $offset, $limit";
$result = mysql_query($sql);
while($row = mysql_fetch_row($result)){
    $table_name = $row[0];
    echo $table_name; //edited out a lot to keep it simple
    //I'm just printing out a lot of data based on table name anyway
}
mysql_free_result($result);
}

使用以下支持限制的给定查询,以便可以使用表名进行分页

select * from information_schema.tables LIMIT 5
我这样做:

function list_tables(){
$amtperpage = 15;
$sql = "SELECT COUNT(TABLE_NAME) FROM information_schema.tables WHERE TABLE_SCHEMA = 'my_dbname'";
$result = mysql_query($sql);
$row = mysql_fetch_row($result);
$total_rows = $row[0];

//pagination stuff here
if(isset($_GET['p'])) $curpage = intval($_GET['p']); else $curpage=1;
$start = abs(($curpage-1)*amtperpage);
$sql = "SELECT TABLE_NAME FROM information_schema.tables ORDER BY TABLE_NAME ASC LIMIT $start,$per_page";
$res = mysql_query($sql);
while($row=mysql_fetch_array($res)) $DATA[++$start]=$row;
$uri = strtok($_SERVER['REQUEST_URI'],"?")."?";
$tmpget = $_GET;
unset($tmpget['p']);
if($tempget){
    $uri .= http_build_query($tmpget)."&";
}
$num_pages=ceil($total_rows/$amtperpage);
for($i=1;$i<=$num_pages;$i++) $PAGES[$i]=$uri.'p='.$i;
?><div id="container">Pages: 
foreach ($PAGES as $i => $link){
if($i == $curpage){
=$i
} else {
?><a href="<?=$link?>"><?=$i?></a>
}
} ?>
foreach($DATA as $i => $row){
$table_name = $row[0];
//use my functions to get data for each table name and list it and such
}
}
函数列表\u表(){
$amtperpage=15;
$sql=“从信息_schema.tables中选择COUNT(TABLE_NAME),其中TABLE_schema='my_dbname';
$result=mysql\u查询($sql);
$row=mysql\u fetch\u row($result);
$total_rows=$row[0];
//分页的东西在这里
if(isset($_GET['p'])$curpage=intval($_GET['p']);else$curpage=1;
$start=abs($curpage-1)*amtperpage);
$sql=“从信息模式中选择表格名称。表格按表格名称排序ASC限制$start$”;
$res=mysql\u查询($sql);
而($row=mysql\u fetch\u array($res))$DATA[+$start]=$row;
$uri=strtok($_服务器['REQUEST_uri'],“?”)”;
$tmpget=$\u GET;
未结算($tmpget['p']);
如果($tempget){
$uri.=http_build_query($tmpget)。“&”;
}
$num_pages=ceil($total_rows/$amtperpage);
对于($i=1;$iPages):
foreach($i=>$link的页面){
如果($i==$curpage){
=$i
}否则{
?>
}
} ?>
foreach($i=>$row数据){
$table_name=$row[0];
//使用my函数获取每个表名的数据并列出它等等
}
}

这是一个非常残酷的过程,因为我有很多东西可能会阻碍这一点,但这应该会起作用。感谢帮助我的人。:)

试试这个:你想做分页吗?如果是这样的话,那么我喜欢那个教程,不过我已经有了一些类似的东西,用于表内的数据,我只需要能够用表本身来做。与在like中一样,列出数据库中的所有表。我在这里坐了好几个小时想弄明白,但我似乎做不到。哈哈。你看到@u_mulder的评论了吗?