我想做select并打印出我拥有的所有表(到目前为止我已经知道了),然后使用对其进行限制,然后按表名排序,并且每页有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篇,而不是一页上几百篇。
如果有人能帮我的话,非常感谢。非常感谢。
发布于 2014-11-17 10:01:01
我做了这个:
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
}
}这是高度屠杀,因为我有很多东西,本来可能会妨碍了重点,但这应该是可行的。感谢那些帮助我的人。:)
发布于 2014-11-17 09:33:02
根据页码计算偏移量和限制,然后尝试以下查询:
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);
}发布于 2014-11-17 09:38:42
使用下面的给定查询,它支持限制,这样您就可以对表名进行分页。
select * from information_schema.tables LIMIT 5https://stackoverflow.com/questions/26969051
复制相似问题