- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在创建一个用于显示报告的网站。所有报告均采用表格格式,并使用 PHP 从 SQL 中提取。我的页面可以正常工作,只是当有超过几百行时它们需要很长时间才能提取数据。这些表中通常有 30 多个列。我想知道是否有办法使表格加载速度更快,或者最好将表格拆分为多个页面,这些页面将在底部具有导航按钮以在表格中向前或向后移动。
我正在尝试仅使用 PHP、HTML 和 CSS 来完成此操作。我无法直接访问代码所在的服务器,只能访问我的代码。所以更新除我的代码以外的任何东西都将非常困难。
这是我现在用于提取和显示该表的代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>QDef</title>
<link rel="StyleSheet" href="StyleSheet.css" type="text/css">
</head>
<body>
<div class="menu-wrap">
<nav class="menu">
<ul class="clearfix">
<li><a href="default.aspx">Home</a></li>
<li><a href="#">Material Tracking</a>
<ul class="sub-menu">
<li><a href="SearchStateProject.php">Search by State or Contract Number</a></li>
<li><a href="MaterialTrackingAllStates.php">All Contracts</a></li>
</ul>
</li>
<li><a href="#">OPR Reports</a>
<ul class="sub-menu">
<li><a href="COEI_OPR_Filtered.php">COEI OPR Filtered</a></li>
<li><a href="OSP_OPR_Filtered.php">OSP OPR Filtered</a></li>
</ul>
</li>
<li><a href="#">Admin</a>
<ul class="sub-menu">
<li><a href="QDef.php">QDef</a></li>
<li><a href="CheckPHP.php">PHP Check</a></li>
<li><a href="EditQDefForm.php">Edit QDef form</a></li>
<li><a href="FormToEditMaterial.php">Form to Edit Material</a></li>
<li><a href="TableUpdates.php">Table Updates</a></li>
</ul>
</li>
</ul>
</nav>
</div>
<br>
<br>
<h1>QDef Table</h1>
<?php
$configs = include('DBConn.php');
$servername = $configs['ServerName'];
$username = $configs['UserName'];
$password = $configs['Password'];
$dbname = $configs['DBName'];
$limit = 15;
try
{
$conn = new PDO("sqlsrv:server=$servername;database=$dbname", $username,$password);
//set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->setAttribute(PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 1);
//echo "Connected Successfully<br>" /*. $conn*/;
/*If conncected see if we can pull any data!*/
}
catch(Exception $e)
{
die( print_r( $e->getMessage()));
}
$TotalRows = $conn->query('select count(*) from pmdb.v_QDefs')->fetchColumn(); //How many rows in the table
$pages = ceil($TotalRows / $limit); //How many page will there be
$currentpage = 1;
$currentpage = min($pages, filter_input(input_get, 'page', filter_validate_int, array('options' => array('default' => 1,'min_range' => 1,),))); //What page are you currently on
var_dump($currentpage);
$offset = abs(($currentpage - 1) * $limit); //Calculate Offset
//Some info to display to the user?
$start = $offset + 1;
$end = min(($offset + $limit),$TotalRows);
$prevlink = ($currentpage > 1) ? '<a href="?page=1" title="First page">«</a> <a href="?page=' . ($currentpage - 1) . '" title="Previous page">‹</a>' : '<span class="disabled">«</span> <span class="disabled">‹</span>'; //the back link
$nextlink = ($currentpage < $pages) ? '<a href="?page' . ($currentpage + 1) . '" title="Next page">›</a> <a href="?page=' . $pages . '" title="Last page">»</a>' : '<span class="disabled">›</span> <span class="disabled">»</span>'; //the Forward link
echo '<div id="paging"><p>', $prevlink, ' Page ',$currentpage, ' of ',$pages,' pages, displaying ',$start,'-',$end, ' of ',$TotalRows,' results ',$nextlink,' </p></div>'; //display the paging information
$tsql = "select Id,QSrc,QName,isActive,RunReport,FilePath,QDef from pmdb.v_QDefs order by Id OFFSET $offset ROWS FETCH NEXT $limit ROWS";
//echo $tsql . "<br>";
$getqueries = $conn->query($tsql);
$queries = $getqueries->fetchALL(PDO::FETCH_ASSOC);
$countqueries = count($queries);
if(isset($countqueries))
{
if($countqueries > 0)
{
//echo "There are queries returned";
BeginQueriesTable($countqueries);
$CountValues = 1;
foreach($queries as $query)
{
PopulateQueryTable($query,$CountValues);
$CountValues = !$CountValues;
}
EndQueriesTable();
}
else
{
echo "<br>Values returned: $countqueries";
}
}
else
{
echo "No count";
}
function BeginQueriesTable($rowCount)
{
$headings = array("Edit","Id","QSrc","QName","isActive","RunReport","FilePath","QDef");
echo "<p class=" . chr(34) . "headings" . chr(34) . ">$rowCount Results</p>";
echo "<table class=" . chr(34) . "tab" . chr(34) . "id=" . chr(34) . "OuterTable" . chr(34) . ">";
echo "<tr>";
foreach($headings as $heading)
{
echo "<th class=" . chr(34) . "cell" . chr(34) . ">$heading</th>";
}
echo "</tr>";
}
function PopulateQueryTable($values,$Number)
{
$queryID = $values['Id'];
//var_dump($values);
//echo "<br/>";
//var_dump ($queryID);
echo "<tr class=" . chr(34) . "row" . ($Number) . chr(34) . "><td><a href=" . chr(34) . "EditQDefForm.php?id=" . $values['Id'] . chr(34) . ">Edit</a></td>";
foreach($values as $key=>$value)
{
if(!is_null($value))
{
echo "<td>$value</td>";
}
else
{
echo "<td></td>";
}
}
echo "</tr>";
}
function EndQueriesTable()
{
echo "</table><br/>";
}
?>
</body>
</html>
现在这个表将拉取大约 15000 行。我知道这不是很大,但加载需要 5 到 10 分钟,因为有 61 列,其中一些是非常长的评论。
如果您需要更多信息,请告诉我,我们将不胜感激。
最佳答案
主要思想是使用MySQL Limit:例如:
$sql = "SELECT * FROM mytable LIMIT 10 OFFSET 15";
您可以将页数作为查询传递给下一个和上一个链接:
$rec_limit=50; //Your favorite paging number
if( isset($_GET{'page'} ) ) {
$page = $_GET{'page'} + 1;
$offset = $rec_limit * $page ;
}else {
$page = 0;
$offset = 0;
}
$sql = "SELECT * from mytable LIMIT $offset, $rec_limit";
检查 here有关创建下一个和上一个链接等的更多详细信息。
关于php - 如何使用 HTML 将表格加载到多个网页中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37883731/
好的,这听起来很简单,但我已经花了几个小时在谷歌上搜索,我只是找不到解决方案,这并不复杂。 我想创建一个包含图像和文本的表格。我希望表格的每一行都具有相同的高度。我希望文本始终从顶部开始。 IE。 \
在我的网站表单上 - 我的出生日期、月份和年份菜单显示在两行上,我希望它们都显示在同一行上。 当我测试代码时,它显示在一行中,所以我相信一定存在宽度问题。 您可以在右侧表格 (incomeprotec
我们需要跟踪和审核生产,本质上我们有很多订单,但我们似乎在途中丢失了一些产品(废品等)。 为了阻止这种情况,我们现在已在 Google 表格上下了订单,并列出了应有的数量,然后员工会写下收到的数量。
我正在转换我的应用程序,以便它适用于 iOS 7。在应用程序的一部分,我有两个搜索栏,每个搜索栏都有一个与之关联的 UISearchDisplayController。当我搜索 UISearchDis
正如标题所说,非固定表格布局是否与类似的 HTML 表格具有相同的性能问题? 最佳答案 非固定表格的问题在于,要确定一列的宽度,必须加载该列的所有单元格。这仅在...... …您有一个包含几千字节或几
我在使用 Javascript 遍历表格并从一行的第一个单元格获取文本时遇到问题。我想获取此单元格的文本,以便我可以将它与其他内容进行比较,如果文本匹配则删除该行。但是,当我尝试获取文本时,实际出现的
我经常发现自己想要制作一个表格表格——一堆行,每一行都是一个单独的表格,有自己的字段和提交按钮。例如,这是一个宠物店应用程序示例——假设这是一个结帐屏幕,您可以选择更新所选宠物的数量和属性,并在结帐前
看过许多UBB代码,包括JS,ASP,JSP的,一直没发现表格的UBB,虽然可以直接用HTML模式实现相同表格功能,但对于某些开放的站点来说开放HTML模式终究是不合适的,故一直想实现表格的UBB。
表格由 table 标签来定义。每个表格均有若干行(由 tr 标签定义),每行被分割为若干单元格(由 td 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格
我有一个 HTML 与 border-radius和使用 position: sticky 的粘性标题看起来像这样: https://codepen.io/muhammadrehansaeed/pen
对于 iPhone 应用程序,我需要以网格格式显示只读表格数据。该数据可能有许多行和列。 我可以使用 UITableView,但问题是数据很可能会非常宽并且需要滚动。 有没有办法将 UITableVi
我知道这里有类似的问题,但我找不到适合我的答案。 我想要的是显示表单“默认”是选择了某些选项(在这种情况下,除了“Ban Appeal”或“Ban Appeal(西类牙语)”之外的所有内容,我希望仅在
天啊! 我想在Flutter中创建以下非常简单的表。基本上是两列文字,左列右对齐,右列左对齐。如果右列具有多个名称,则每一行都将顶部对齐。 左列应自动调整为最大项目的大小(因为每个标题都有翻译字符串)
我们开始构建 SSAS 表格模型,并想知道大多数人是否拥有一个或多个模型。如果有多个,您是否复制每个所需的表,或者是否有办法在模型之间共享表?我想我知道答案,但我希望那些有更多经验的人能够证实我们的发
tl;博士 如何将任意数量的单词分成两列,总是在最后一列中只有最后一个单词,在第一列中包含所有其他单词? =IFS( LEN(C2)-LEN(SUBSTITUTE(C2," ",""))=1, SP
你们知道一个图表或dable,它可以提供一个简短而简洁但仍然完整且相对最新的现有协议(protocol)及其细节的 View ? (即:ZeroMQ、Rendez-Vous、EMS、...所有这些!:
我才刚刚开始开发MFC应用程序,我希望对整个“控件”概念更加熟悉。我在Visual Studio中使用对话框编辑器,到目前为止,我无法找到添加简单表/网格的功能。这对我来说似乎很基础,但是我什至找不到
我需要对一个非常大的表或矩阵执行计算和操作,大约有 7500 行和 30000 列。 矩阵数据将如下所示: 文件编号|字1 |字 2 |字 3 |... |字 30000 |文档类 0032 1 0
我正在使用设计非常糟糕的数据库,我需要在编写查询之前重新调整表格。 以下是我的常见问题: 时间戳已分为两列(一列用于日期,另一列用于时间)。 一些字符串列也被拆分成多个列。 大多数字符串都有固定长度和
我正在尝试显示 $row["name"] 通过 HTML Table 的形式,如下所示: echo " ".$row["name"]." "; 我也从这里获取行变量: $que
我是一名优秀的程序员,十分优秀!