2012-07-28 56 views
0

我是一名學生編碼器。 我想創建一個排序按鈕,當按下時,按升序排序MYSQL查詢。然後再次按下時,它將按降序排列。對,現在,它只是顯示升序和降序表背靠背。創建一個按鈕,將排序MYSQL查詢升序和降序

形成此按鈕邏輯的最佳方式是什麼?

謝謝。 P.L.

<form name="Email Header" method="post" action="{$_SERVER['PHP_SELF']}"> 
    <button type="submit" name="id_sort" class="button" value="1">ID</button> 
    <button type="submit" name="from_sort" class="button" value="1">FROM</button> 
    <button type="submit" name="to_sort" class="button" value="1">TO</button> 
    <button type="submit" name="subject_sort" class="button" value="1">SUBJECT</button> 
    <button type="submit" name="date_sort" class="button" value="1">DATE</button> 
</form> 


// SORT 

if(isset($_POST['id_sort'])) 
    if($_POST['id_sort'] == 1) 
    id_ASC_sort(); 
    $_POST['id_sort'] = 0; 

if ($_POST['id_sort'] == 0) 
    if(isset($_POST['id_sort'])) 
    if($_POST['id_sort'] == 1) 
     id_DESC_sort(); 


// query 
    $sql = "SELECT * FROM messages ORDER BY message_id DESC"; 
    $result = mysql_query($sql); 

回答

0

我已經在你的代碼下面一行變化: -

<form name="Email Header" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 

,並添加一個按鈕: -

<button type="submit" name="asc_sort" id="asc_sort" class="button" value="1">Sort</button> 

和更改查詢

if(isset($_POST['asc_sort']) && !empty($_POST['asc_sort']) && $_POST['asc_sort']==1) 
{ 
    $sql = "SELECT * FROM messages ORDER BY message_id ASC"; 

}else{ 

    $sql = "SELECT * FROM messages ORDER BY message_id DESC"; 
} 

echo $sql; 

試試這個

<form name="Email Header" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
<button type="submit" name="id_sort" class="button" value="1">ID</button> 
<button type="submit" name="from_sort" class="button" value="1">FROM</button> 
<button type="submit" name="to_sort" class="button" value="1">TO</button> 
<button type="submit" name="subject_sort" class="button" value="1">SUBJECT</button> 
<button type="submit" name="date_sort" class="button" value="1">DATE</button> 
<button type="submit" name="asc_sort" id="asc_sort" class="button" value="1">Sort</button> 

+0

感謝您的回覆,阿比德。我不想使用向上和向下的鏈接,而是想要一個可以排序(按升序)的按鈕,然後同一按鈕的值變爲向下,以便我可以再次按下並降低(降序排列) – cinematicpoetry 2012-07-28 19:22:03

+0

Abid ,謝謝你再次回覆。這是2個按鈕做不同的種類。我真的想要一個按鈕來做ASC排序和DESC排序。謝謝。 – cinematicpoetry 2012-07-29 02:55:51

2

檢查你的第二個條件塊。你有一個等號而不是雙等號。這意味着你實際上是設置變量而不是檢查它的值,它的值總是爲真。

+0

謝謝,Octern。 – cinematicpoetry 2012-07-28 18:51:13

+0

我糾正了==問題。我如何得到一個按鈕排序升序,當再次按下,排序降序?謝謝。 – cinematicpoetry 2012-07-28 19:07:05

+0

由於你每次都重新加載頁面,我建議檢查發佈的排序值並將按鈕的值設置爲相反,例如'value =「<?php echo(1- $ id_sort)?>」 '。這樣,如果前一次排序降序,按鈕將會請求升序排序,反之亦然。 – octern 2012-07-28 19:18:37