отображать изображение, если значения не найдены - PullRequest
1 голос
/ 23 февраля 2012

Я пытаюсь написать скрипт для отображения изображений на основе того, есть ли запись в базе данных, например, если в текстовой строке есть ABC, будет отображаться изображение.Я правильно понял эту часть, но теперь проблема в том, что если нет текстовой строки, которая соответствует abc, я хочу, чтобы выводилось пустое изображение, например, если нет текстовых строк, содержащих abc, не будет ни вывода, ни пустого изображения.Вот код, над которым я работал.

 <?php
     //Begin Airline List
                //FAA ident only eg AAH = Aloha
                if (strpos($e[0],'AAH') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/aah.png"/>';}
                if (strpos($e[0],'AAL') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/aal.png"/>';}
                if (strpos($e[0],'SWA') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/swa.png"/>';}
                if (strpos($e[0],'UAL') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/ual.png"/>';}
                if (strpos($e[0],'HAL') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/hal.png"/>';}
                if (strpos($e[0],'DAL') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/dal.png"/>';}
                if (strpos($e[0],'ASA') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/asa.png"/>';}
                if (strpos($e[0],'TRS') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/trs.png"/>';}
                if (strpos($e[0],'KAP') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/kap.png"/>';}
                if (strpos($e[0],'CHQ') !==false){
                $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/chq.png"/>';}
// this is where i want to code for if there is no matching text strings                
else (strpos($e[0],'CHQ','AAH','AAL','SWA','UAL','HAL','DAL','ASA','TRS','KAP','CHQ') ===false)
                die $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/blank.png"/>';



                //End Airline Listing


    ?>

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

Как упоминалось в zerkms, вы захотите использовать что-то вроде следующей формы if-elseif-else:

if (strpos($e[0],'AAH') !==false) {
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/aah.png"/>';
} elseif (strpos($e[0],'AAL') !==false) {
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/aal.png"/>';
} elseif (strpos($e[0],'SWA') !==false) {
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/swa.png"/>';
} elseif (strpos($e[0],'UAL') !==false){
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/ual.png"/>';
} elseif (strpos($e[0],'HAL') !==false){
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/hal.png"/>';
} elseif (strpos($e[0],'DAL') !==false){
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/dal.png"/>';
} else if (strpos($e[0],'ASA') !==false){
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/asa.png"/>';
} elseif (strpos($e[0],'TRS') !==false) {
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/trs.png"/>';
} elseif (strpos($e[0],'KAP') !==false) {
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/kap.png"/>';
} elseif (strpos($e[0],'CHQ') !==false) {
    $cs='<img src="http://www.virtual-viation.org/main/map/alogos/chq.png"/>';
} else {
    // this is where you can code for if no match occurred above
    $cs='<img src="http://www.virtual-aviation.org/main/map/alogos/blank.png"/>';
}
1 голос
/ 23 февраля 2012

Лучшее, что нужно сделать в этих ситуациях, - это отделить вашу логику от ваших данных.

<?php
    // Begin Airline List
    // FAAident only eg AAH = Aloha
    $airlines = Array('AAH', 'AAL', 'SWA', 'UAL', 'HAL', 'DAL', 'ASA', 'TRS', 'KAP', 'CHQ'); 

    $current = 'blank';
    $search = 'something aah something'; // $e[0];
    foreach ($airlines as $airline) {
        if ( stripos($search, $airline) !== false ) {
            $current = $airline;
            break;
        }
    }

    $image = '<img src="http://www.virtual-aviation.org/main/map/alogos/' . $current . '.png"/>';

    //End Airline Listing
?> 

Просто установите $search в переменную $e[0], которая у вас есть, и все будет работать.Я также использую stripos для нечувствительности к регистру, но это не требуется, если вы можете гарантировать регистр букв.Обратите внимание, что это гораздо лучший метод, чем ситуация if if и даже ситуация переключения, потому что все, что вы вводите, это массив, и вам вообще не нужно изменять какую-либо структуру кода, чтобы добавлять или удалять авиакомпании.Все, что вам когда-либо понадобится, - это массив в верху - это именно то, что вам нужно, - чтобы ваш код был динамичным и коротким и позволял изменять данные по мере необходимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...