[英]php - sort MySql rows by table headers
我有一個表,其中包含從此MySql語句檢索的數據:
$sql = "SELECT log_date, log_id, log_time, network_protocal, client_name, client_ip FROM log_table";
我希望能夠通過單擊表頭(或它們旁邊的向上和向下箭頭,按我現在的方式)對表頭進行排序。
這是我的HTML:
<?php
$sort = "";
$sql = "SELECT log_date, log_id, log_time, network_protocal, client_name, client_ip
FROM log_table $sort";
if(isset($_GET['sort'])) {
switch ($_GET['sort'] ) {
case 0:
$sort = " ORDER BY log_date ASC";
break;
case 1:
$sort = " ORDER BY log_date DESC";
break;
case 2:
$sort = " ORDER BY log_time ASC";
break;
case 3:
$sort = " ORDER BY log_time DESC";
break;
case 4:
$sort = " ORDER BY network_protocal ASC";
break;
case 5:
$sort = " ORDER BY network_protocal DESC";
break;
case 6:
$sort = " ORDER BY client_name ASC";
break;
case 7:
$sort = " ORDER BY client_name DESC";
break;
case 8:
$sort = " ORDER BY client_ip ASC";
break;
case 9:
$sort = " ORDER BY client_ip DESC";
break;
}
}
$sql = "SELECT log_date, log_id, log_time, network_protocal, client_name, client_ip
FROM log_table $sort";
$query = $this->db->prepare($sql);
$query->execute();
$query->fetchAll();
?>
<div class="container">
<table class="table table-striped">
<tr>
<td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=0";?>" >▲</a>Date<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=1";?>" >▼</a></td>
<td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=2";?>" >▲</a>Time<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=3";?>" >▼</a></td>
<td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=4";?>" >▲</a>Network Protocol<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=5";?>" >▼</a></td>
<td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=6";?>" >▲</a>Client Name<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=7";?>" >▼</a></td>
<td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=8";?>" >▲</a>Client IP<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=9";?>" >▼</a></td>
</tr>
<?php foreach ($logs as $log) { ?>
<tr>
<td>
<?php if (isset($log->log_date)) echo (string)$log->log_date; ?>
</td>
<td>
<?php if (isset($log->log_time)) echo (string)$log->log_time; ?>
</td>
<td>
<?php if (isset($log->network_protocal)) echo (string)$log->network_protocal; ?>
</td>
<td>
<?php if (isset($log->client_name)) echo (string)$log->client_name; ?>
</td>
<td>
<?php if (isset($log->client_ip)) echo (string)$log->client_ip; ?>
</td>
</tr>
<?php } ?>
</table>
</div>
當我單擊向上和向下箭頭以對url進行正確排序時,例如“ index.php?sort = 3”,但是什么也沒有發生。 有人知道我在做什么錯嗎?
使用(`)作為參數,如下所示:
SELECT `log_date`,` log_id`, `log_time`, `network_protocal`, `client_name`, `client_ip`
FROM `log_table` ORDER BY `log_time` DESC`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.