2011-01-27 17 views
1

私のPHPを構成する助けが必要です。私は働くために3種類の検索をしようとしています。 1つの検索はデフォルトの通常のテキスト検索で、これはelse文に含まれています。ここでは2つの検索を動作させるために私がやっていることのベアボーンがあります。あなたがメディア "all"が選択されているかどうかを確認してスクリプトを見ると、それはelse文を使ってデフォルトの検索を表示します。PHPを構造化するのに助けが必要

if(isset($_GET['media']) && 
    $_GET['media'] == 'all') 
    { //Code goes here for media search for all media results } 


else{ //code goes here for default search} 

これは2回の検索で問題なく動作しますが、使用したい3番目の検索がありますが、正しく実装する方法はわかりません。

第3の検索は基本的に私が把握しようとしていますすべてがすべて3件の検索が動作するように取得する方法であるメディアのみ

if(isset($_GET['media']) && 
    $_GET['media'] == 'only') 
    { //Code goes here for media search for only media results } 

ためです。なぜIFとELSEのために最初の2つがうまくいくのか知っていますが、私は唯一のメディア検索でどのように追加するのか正確にはわかりません。誰も私にいくつかの提案を与えることができますか?ありがとう。

+0

たくさん素晴らしい答え。みんな、ありがとう。それは解決される。 – chris

答えて

4

これはクリーンな方法であり、代わりに条件付きif/elseブロックのswitchステートメントを使用してより速く動作します。また、あなただけの新しい例を追加することによって、さらにそれを拡張することができます(あなたが再要因あなたのif/else将来的にブロックする必要はありません):スイッチを使用して

$media = isset($_GET['media']) ? $_GET['media'] : 'no_media'; 

switch($media) { 
    case 'only': 
     // search for only media 
     break; 
    case 'all': 
     // search for text and media 
     break; 
    default: 
     // search for just text, or the default. 
     break; 
} 

を、PHPはオーバー$_GET['media']を評価する必要はありません。オーバー。

+0

これは最高のようです。 Reanimationが投稿したもう一つの方法もうまくいきます。ありがとう。 – chris

+1

素敵できれいです。 – troutinator

+0

非常にきれいな、私はちょうどこの方法で実装し、それは素晴らしい作品とはるかに簡単に他のものを作った。 – chris

1

これはあなたが意味するものだと思います。 elseifも使用できます。

if(isset($_GET['media']) && $_GET['media'] == 'all') 
{ 
    // All media search 
} 
else if(isset($_GET['media']) && $_GET['media'] == 'only') 
{ 
    // Only media search 
} 
else 
{ 
    // Default search 
} 

see here

+0

私はそれを試してみましょう。ありがとう。 – chris

+0

素晴らしいです、ありがとうございます。私は、私が他にやっていたときに私が間違っていたものを見る。私はelse文の後でそれを使用していました。 – chris

1

おそらく、この:

if(isset($_GET['media']) && $_GET['media'] == 'all') 
{ //Code goes here for media search for all media results } 
else if(isset($_GET['media']) && $_GET['media'] == 'only') 
{ //Code goes here for media search for only media results } 
else 
{ //code goes here for default search } 
1

のelseifは動作するはずです:

 
if(isset($_GET['media']) && $_GET['media'] == 'all') { 
//Code goes here for media search for all media results 
} 
elseif(isset($_GET['media']) && $_GET['media'] == 'only') { 
//Code goes here for media search for only media results 
} 
else{ 
//code goes here for default search 
} 
1

をあなたはELSEIFを使用(ISSET($ _ GET [ 'メディア'])& & $ _GET [ 'メディア'] == 'のみ')

関連する問題