如果未找到值,则显示图像

时间:2012-02-23 02:34:49

标签: php if-statement

我试图根据数据库中是否有条目来编写脚本以显示图像,例如,如果文本字符串具有ABC,则将显示图像。我正确地得到了那个部分但现在问题是如果没有匹配abc的文本sting我想要输出空白图像,例如如果没有包含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 个答案:

答案 0 :(得分:2)

正如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 :(得分:1)

在这些情况下,最好的办法是将逻辑与数据分开。

<?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 else情况更好的方法,甚至是切换案例情况,因为您所有的数据都是一个阵列,您根本不需要更改任何代码结构来添加或删除航空公司。您需要触摸的就是顶部的阵列 - 这正是您想要的 - 保持您的代码动态和简短,并允许根据需要更改数据。