QUERY_STRING is
| One | Two | Three | Four |
|---|---|---|---|
| 1 | One | 1 | One |
| 2 | Two | 4 | Four |
| 3 | Three | 9 | Nine |
| 4 | Four | 16 | Sixteen |
| 5 | Five | 25 | Twenty Five |
| 6 | Six | 36 | Thirty Six |
| 7 | Seven | 49 | Fourty Nine |
| 8 | Eight | 64 | Sixty Four |
| 9 | Nine | 81 | Eight One |
| 10 | Ten | 100 | One Hundred |
<?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'];
//Open and read CSV file example has four columns
$i=-1;
$ff=fopen('DataFile.csv','r') or die("Can't open file");
while(!feof($ff)){
$i++;
$Data[$i]=fgetcsv($ff,1024);
}
//Make columns sortable for each sortable column
foreach ($Data as $key => $row) {
$One[$key] = $row[0]; // could be $row['Colname']
$Two[$key] = $row[1]; //numeric example
$Three[$key] = $row[2];
$Four[$key] = $row[3];} //numeric example
//Case Statements for Sorting
switch ($sortby){
case "0":
if($rev=="1")array_multisort($One, SORT_NUMERIC, $Data); //SORT_NUMERIC optional
else array_multisort($One, SORT_NUMERIC, SORT_DESC,$Data);
$rev=$rev*-1;
break;
case "1":
if($rev=="1")array_multisort($Two, $Data);
else array_multisort($Two, SORT_DESC, $Data);
$rev=$rev*-1;
break;
case "2":
if($rev=="1")array_multisort($Three, SORT_NUMERIC, $Data);
else array_multisort($Three, SORT_NUMERIC, SORT_DESC,$Data);
$rev=$rev*-1;
break;
case "3":
if($rev=="1")array_multisort($Four, $Data);
else array_multisort($Four, SORT_DESC, $Data);
$rev=$rev*-1;
break;}
echo ("<table border=2>"); //$rev is reverse variable
echo ("<th><a href=\"SortTable.php?sortby=0&rev=$rev\" title=\"Click to Sort/Reverse sort\">One</a></th>");
echo ("<th><a href=\"SortTable.php?sortby=1&rev=$rev\" title=\"Click to Sort/Reverse sort\">Two</a></th>");
echo ("<th><a href=\"SortTable.php?sortby=2&rev=$rev\" title=\"Click to Sort/Reverse sort\">Three</a></th>");
echo ("<th><a href=\"SortTable.php?sortby=3&rev=$rev\" title=\"Click to Sort/Reverse sort\">Four</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>";
$fst=fopen("STcode.html","r");
while(!feof($fst))echo fgets($fst,1024)."<br/>\n";
fclose($fst);
//© www.sallyje.co.uk 19/11/2004
?>