2012-04-18 3 views
0

注文に問題があります。 リクエストをs = 10またはs11に設定すると、何もしません。 $注文を要求に応じて印刷しようとしましたが、機能しませんでした。 PHP switch/case構文を使用するようにしてください$ sqlを=($順)なぜ注文しないのですか

if(isset($_GET['s']) AND $_GET['s']==10) 
        { 
         $order=' ORDER BY a.saskanojuma_nr ASC'; 
        } 
elseif(isset($_GET['s']) AND $_GET['s']==11) 
        { 
         $order=' ORDER BY a.saskanojuma_nr DESC'; 
        } 
        else 
        { 
         $order=' ORDER by a.id desc'; 
        } 



        $sql='SELECT a.projekta_id, a.saskanojuma_nr, a.datums, a.akcepta_nr, a.objekta_autors FROM '.$table_prefix.'_saskanojumi a LEFT JOIN '.$table_prefix.'_projekti b ON b.id=a.projekta_id LEFT JOIN '.$table_prefix.'_objekti c ON c.id=b.objekta_id LEFT JOIN '.$table_prefix.'_kadastri d ON d.objekta_id=c.id LEFT JOIN '.$table_prefix.'_ipasnieki e ON e.objekta_id=c.id '.$query.' AND a.buvvaldes_id='.$_SESSION['buvvaldes_id'].' AND a.dzests=0 GROUP BY a.id '.$order.' '; 
     $thiss=$GLOBALS['db']->query($sql); 
+2

$ sqlが表示されているか確認してください。 –

+0

$クエリには何がありますか? –

+0

あなたは十分なコードを表示していないかもしれません。あなたが持っているものは、少なくとも '$ sql'に' a.id descによってORDERを追加するべきです。 –

答えて

1

あなたのコードは正しいようです。おそらく問題はどこか他の場所です。

ステップバイステップbanchmarkあなたのコードはどこですか?

+0

+1 。コードは私のマシンで完璧に動作しました – Jared

0

に表示されます場合$_GET['s']

switch ($_GET['s']) { 
    case 10: 
    $order=' ORDER BY a.saskanojuma_nr ASC'; 
    break; 

    case 11: 
    $order=' ORDER BY a.saskanojuma_nr DESC'; 
    break; 

    default: 
    $order=' ORDER by a.id desc'; 
    break; 
} 

$order変数の値がdefault "から取得され、10または11ではありません'ステートメント、すなわちORDER by a.id desc

+0

彼のコードに何が問題なの? OPなら何が問題なの?ここでif/elseを使う? –

+0

$ _GET ['s']が10でない場合に限り、最後の 'else'ステートメントが実行されるのでロジックは間違っていますが、/ elseステートメントが一般的であれば間違ってはいけません... – bodi0

関連する問題