2013-02-19 103 views
0

我是全新的PHP和所有。 我想使用CSV文件制作可排序的表格。我可以用PHP获取文件,但是我的表格有四列,但是它在我的表格的第一列中显示了我的CSV文件的所有内容。使用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行。我已经单独制作了它,但是我无法让它正常工作。

回答

0

你的代码看起来像一个烂摊子,但它可能工作ok'ish .. 我猜它显示了一个行,因为你只是写$str.="</td>\n";,你应该写$str.="</tr>\n";

+0

THX,我会尝试这个现在出来。 – Miguel 2013-02-20 08:38:11

+0

我只是做了更改,但没有任何反应......我的csv文件中的所有列仍在第一列中...帮助 – Miguel 2013-02-20 08:53:41

+0

以及生成的html如何显示? – hank 2013-02-20 08:56:25