排序/限制表列表MySQL和PHP

时间:2014-11-17 09:07:18

标签: php mysql

我想选择并打印出我拥有的所有表(我到目前为止),然后使用``进行限制,然后按表名对它们进行排序,每页有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个帖子,而不是一页上的几百个帖子。

如果有人能帮助我,请先谢谢。非常感激。

3 个答案:

答案 0 :(得分:0)

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

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);
}

答案 1 :(得分:0)

使用下面给出的支持LIMIT的查询,以便您可以对表名进行分页。

select * from information_schema.tables LIMIT 5

答案 2 :(得分:0)

我这样做了:

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
}
}

这是高度屠杀的,因为我有很多东西可以解决问题,但这应该有效。感谢帮助我的人。 :)