如何在PHP,SQLSRV中单击标题ASC / DESC上的表进行排序

时间:2017-07-21 20:46:14

标签: php sorting sqlsrv

我们希望按标题[JobTitle]和[Status]$_GET表进行排序,我们尝试使用$_GET选项,但我们无法管理它,我们的表格代码。我们无法将<html> <head> <title>PHP & SQL Server (sqlsrv)</title> </head> </head> <body> <div class="table-title"> <h3>Test table</h3> <?php ini_set('display_errors', 1); error_reporting(~0); $serverName = "localhost"; $userName = "username"; $userPassword = "password"; $dbName = "AdWorks"; $connectionInfo = array("Database"=>$dbName, "UID"=>$userName, "PWD"=>$userPassword, "MultipleActiveResultSets"=>true); $conn = sqlsrv_connect( $serverName, $connectionInfo); if( $conn === false ) { die( print_r( sqlsrv_errors(), true)); } ?> <form action="list.php" method="POST"> <select name="RegSelect"><option> Choose </option> <?php $sql = "SELECT DISTINCT CountryRegionName FROM dbTest ORDER BY CountryRegionName"; $resultRg = sqlsrv_query($conn,$sql) or die("Couldn't execut query"); while ($data=sqlsrv_fetch_array($resultRg, SQLSRV_FETCH_ASSOC)){ echo '<option value="'.$data['CountryRegionName'].'">'; echo $data['CountryRegionName']; echo "</option>"; } if(empty($_POST['RegSelect'])){ $_SESSION['tower'] = ''; } else { $stmt = "SELECT BusinessEntityID, FirstName, LastName, JobTitle, PhoneNumber, PhoneNumberType, EmailAddress, AddressLine1, City, PostalCode, CountryRegionName, Status FROM dbTest WHERE CountryRegionName = '".$_POST['RegSelect']."'"; $qry = sqlsrv_query($conn, $stmt); } ?> <input type="submit" value="Select Tower"> </select></br></br> </form> <table align="center"> <tr> <th width="91"> <div align="center">BusinessEntityID </div></th> <th width="98"> <div align="center">FirstName </div></th> <th width="198"> <div align="center">LastName </div></th> <th width="97"> <div align="center">JobTitle </div></th> <th width="59"> <div align="center">PhoneNumber </div></th> <th width="71"> <div align="center">PhoneNumberType </div></th> <th width="30"> <div align="center">EmailAddress </div></th> <th width="30"> <div align="center">AddressLine1 </div></th> <th width="30"> <div align="center">City </div></th> <th width="30"> <div align="center">PostalCode </div></th> <th width="30"> <div align="center">CountryRegionName </div></th> <th width="30"> <div align="center">Status </div></a></th> <th width="30"> <div align="center">Edit </div></th> </tr> <tbody class="rows"> <?php while($result = sqlsrv_fetch_array($qry, SQLSRV_FETCH_ASSOC)){ //print_r($result); ?> <tr> <td><div align="center"><?=$result["BusinessEntityID"];?></div></td> <td><div align="center"><?=$result["FirstName"];?></div></td> <td><?=$result["LastName"];?></td> <td align="right"><?=$result["JobTitle"];?></td> <td align="right"><?=$result["PhoneNumber"];?></td> <td align="right"><?=$result["PhoneNumberType"];?></td> <td align="right"><?=$result["EmailAddress"];?></td> <td align="right"><?=$result["AddressLine1"];?></td> <td align="right"><?=$result["City"];?></td> <td align="right"><?=$result["PostalCode"];?></td> <td align="right"><?=$result["CountryRegionName"];?></td> <td align="right"><?=$result["Status"];?></td> <td align="center"><a href="edit_bck.php?BusinessEntityID=<?php echo $result["BusinessEntityID"];?>">Edit </a></td> </tr> <?php } ?> </table> <?php sqlsrv_close($conn); ?> </body> </html> 解决方案付诸实施。

Go to File...

1 个答案:

答案 0 :(得分:0)

在了解了它的工作原理之后,我找到了使用JQuery Tablesorter的解决方案。

<html>
<head>
<title>SQL Server (sqlsrv)</title>
<link rel="stylesheet" href="jquery/themes/blue/style.css" type="text/css" media="print, projection, screen" />
<script type="text/javascript" src="jquery/jquery-3.2.1.js"></script> 
<script type="text/javascript" src="jquery/jquery.tablesorter.js"></script>
<script type="text/javascript" src="jquery/jquery.tablesorter.widgets.js"></script>

<script type="text/javascript">
$(document).ready(function() 
    { 
        $("#myTable").tablesorter(); 
    } 
);
</script>
</head>
<body>
<div class="table-title">
    <h3>Test Table</h3>
<?php
   ini_set('display_errors', 1);
   error_reporting(~0);

   include('connect.php');
?> 
<form action="list.php" method="POST">
<select name="RegSelect"><option> Choose </option>
<?php
    $query1 = "SELECT DISTINCT CountryRegionName FROM someDB ORDER BY CountryRegionName";
    $stmt1 = $conn->query( $query1 );
    while ($data = $stmt1->fetch(PDO::FETCH_ASSOC)){
        echo '<option value="'.$data['CountryRegionName'].'">';
        echo $data['CountryRegionName']; 
        echo "</option>";
    }
if(empty($_POST['RegSelect'])){
    $_SESSION['tower'] = '';
} else {
    $query2 = "SELECT BusinessEntityID, FirstName, LastName, JobTitle, PhoneNumber, PhoneNumberType, EmailAddress, AddressLine1, City, PostalCode, CountryRegionName, Status FROM someDB WHERE CountryRegionName = '".$_POST['RegSelect']."' ORDER BY JobTitle ASC";

    $stmt2 = $conn->query( $query2 );
}
?>
<input type="submit" value="Select Tower">
</select></br></br>
</form>
<table id="myTable" class="tablesorter" align="center">
<thead>
  <tr>
    <th width="91">Entity ID</th>
    <th width="98">Fist Name</th>
    <th width="198">Last Name</th>
    <th width="97">Job Title</th>
    <th width="59">Phone Number</th>
    <th width="71">Phone Type</th>
    <th width="30">Email Address</th>
    <th width="30">Address</th>
    <th width="30">City</th>
    <th width="30">Postal Code</th>
    <th width="30">Region Name</th>
    <th width="30">Status</th>
    <th width="30">Edit</th>
  </tr>
<thead>
<tbody>
<?php
    if(empty($stmt2)){
        echo '';
    }else{
        while ($result = $stmt2->fetch(PDO::FETCH_ASSOC)){
?>
    <tr>
        <td><?=$result["BusinessEntityID"];?></td>
        <td><?=$result["FirstName"];?></td>
        <td><?=$result["LastName"];?></td>
        <td><?=$result["JobTitle"];?></td>
        <td><?=$result["PhoneNumber"];?></td>
        <td><?=$result["PhoneNumberType"];?></td>
        <td><?=$result["EmailAddress"];?></td>
        <td><?=$result["AddressLine1"];?></td>
        <td><?=$result["City"];?></td>
        <td><?=$result["PostalCode"];?></td>
        <td><?=$result["CountryRegionName"];?></td>
        <td><?=$result["Status"];?></td>
        <td><a href="edit_bck.php?BusinessEntityID=<?php echo $result["BusinessEntityID"];?>">Edit </a></td>
    </tr>
<?php
        }
    }
?>
</tbody>
</table>
</body>
</html>