2011-01-27 2 views
1

Мне нужна помощь в структурировании моего php. Я пытаюсь получить 3 разных поисковых запроса. один поиск является обычным текстовым поиском, который является значением по умолчанию и является тем, что находится в инструкции 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 поисков, но у меня есть третий поиск, я хочу использовать, но не знаю, как правильно реализовать.

третий поиск только для СМИ

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

В принципе все, что я пытаюсь выяснить, как получить все 3 ищет работу. Я знаю, почему первые 2 будут работать, потому что IF и ELSE, но я не совсем уверен, как добавить в ТОЛЬКО медиа-поиск. Может ли кто-нибудь дать мне несколько советов? Благодарю.

+0

много больших ответов. Всем спасибо. Он решен. – chris

ответ

4

Это самый чистый способ, и работает быстрее с помощью переключателя заявление вместо условного if/else блока. Кроме того, вы можете расширить его дальше, просто добавив новые случаи (так что вам не придется повторно фактор ваших 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 (Исеть ($ _ GET [ 'СМИ']) & & $ _GET [ 'СМИ'] == 'только')

Смежные вопросы