2014-05-24 41 views
0

我有一個包含從這個MySQL語句檢索數據的表:PHP - 排序MySQL的行由表頭

$sql = "SELECT log_date, log_id, log_time, network_protocal, client_name, client_ip FROM log_table"; 

我希望能夠通過表頭通過點擊排序(或向上向下箭頭,這是我現在的樣子)。

這是我的HTML:「index.php的排序= 3」

<?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";?>" >&#9650;</a>Date<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=1";?>" >&#9660;</a></td> 
     <td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=2";?>" >&#9650;</a>Time<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=3";?>" >&#9660</a></td> 
     <td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=4";?>" >&#9650;</a>Network Protocol<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=5";?>" >&#9660</a></td> 
     <td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=6";?>" >&#9650;</a>Client Name<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=7";?>" >&#9660;</a></td> 
     <td><a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=8";?>" >&#9650;</a>Client IP<a href="<?php echo $_SERVER['PHP_SELF'] . "?sort=9";?>" >&#9660</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顯示正確的排序,例如,但沒有任何反應。有誰知道我做錯了什麼?

+0

什麼是你的問題? –

+0

@Rene Roth - 抱歉Rene,剛剛更新了我的原帖並提出了一個問題。 –

+0

你檢查你的SQL(即與echo $ sql;)? – chresse

回答

0

使用(`)爲你的論點,是這樣的:

SELECT `log_date`,` log_id`, `log_time`, `network_protocal`, `client_name`, `client_ip` 
FROM `log_table` ORDER BY `log_time` DESC`