0

我对 PHP 和所有这些都是全新的。我想使用 CSV 文件制作一个可排序的表。我可以在 PHP 中获取文件,但我的表有四列,但它在我的表的第一列中显示了我的 CSV 文件的所有内容。

我的 CSV 文件如下所示:

Timestamp;Company;Employee;Type
06/02/2013;4298;2001;start
......... and so on....

这是我现在的php:

<?php
echo "QUERY_STRING is ".$_SERVER['QUERY_STRING']."<p>"; 
$rev=1;
$sortby=0;
if(isset($_GET['sortby']))$sortby = $_GET['sortby']; 
if(isset($_GET['rev']))$rev = $_GET['rev'];



$i=-1;
$ff=fopen('...file.csv','r') or die("Can't open file");
while(!feof($ff)){
$i++;
$Data[$i]=fgetcsv($ff,1024);
}


foreach ($Data as $key => $row) {
$Timestamp[$key]  = $row['Colname']; 
$Company[$key] = $row['Colname']; 
$Employee[$key] = $row['Colname'];
$Type[$key] = $row['Colname'];} 



switch ($sortby){
case "0":
if($rev=="1")array_multisort($Timestamp, SORT_NUMERIC, $Data); 
else array_multisort($Timestamp, SORT_NUMERIC, SORT_DESC,$Data);
$rev=$rev*-1;
break;

case "1":
if($rev=="1")array_multisort($Company,  $Data);
else array_multisort($Company, SORT_DESC, $Data);
$rev=$rev*-1;
break;

case "2":
if($rev=="1")array_multisort($Employee, SORT_NUMERIC, $Data);
else array_multisort($Employee, SORT_NUMERIC, SORT_DESC,$Data);
$rev=$rev*-1;
break;

case "3":
if($rev=="1")array_multisort($Type,   $Data);
else array_multisort($Type,  SORT_DESC, $Data);
$rev=$rev*-1;
break;}

echo ("<table border=2>");     
echo ("<th><a href=\"realtime3.php?sortby=0&rev=$rev\" title=\"Click to Sort/Reverse           sort\">Timestamp</a></th>");
echo ("<th><a href=\"realtime3.php?sortby=1&rev=$rev\" title=\"Click to Sort/Reverse sort\">Company</a></th>");
echo ("<th><a href=\"realtime3.php?sortby=2&rev=$rev\" title=\"Click to Sort/Reverse sort\">Employee</a></th>");
echo ("<th><a href=\"realtime3.php?sortby=3&rev=$rev\" title=\"Click to Sort/Reverse sort\">Type</a></th>");

$i=0;
foreach($Data as $NewDat){
if($NewDat[0]!=""){ //error trap
$str="<tr>";
foreach($NewDat as $field)$str.="<td>$field</td>";
$str.="</td>\n";
echo $str;}}
fclose($ff);
echo "</table>";
?>  

如果有人可以帮助我朝着好的方向发展,非常感谢。是否可以添加搜索字段/下拉字段/...?这将允许用户在输入或选择要搜索的输入时轻松更好地查看表格?我试图为表格进行分页,让我们说一次显示 15 行。我已经单独制作了它,但我无法让它正常工作。

4

1 回答 1

0

你的代码看起来很乱,但它可能工作正常。我猜它显示在一行,因为你只是写$str.="</td>\n";了你应该写的地方$str.="</tr>\n";

于 2013-02-19T18:03:25.523 回答