Псевдоним столбца значения динамически при условии с PHP - PullRequest
0 голосов
/ 02 июня 2019

Я хочу изменить значения столбца на эхо по условию. Работает как описание значения столбца. Но мне довелось повторить только первый удовлетворенный пункт о моей работе.

Слышал, что ассоциативные массивы могут обойти это. Я не мог сделать это с точки зрения моего проекта, а также уровня знаний. Вот четкий код функции

function UFLAGAlias($productResult)
{    
while ($uflag = oci_fetch_assoc($result))
{ 

    $uflagc = $uflag["UFLAG"]; 


    if($uflagc == 0)
    {
        $uflagc= "Not Blocked";
        printf($uflagc);
    }

    else if($uflagc == 64)
    {
        $uflagc = "Blocked by system administrator";
        printf($uflagc);
    }

    else if($uflagc == 192)
    {
        $uflagc = "Blocked by system administrator\nBlocked for invalid logon"; 
        printf($uflagc);
    }

    else if($uflagc == 128)
    {
        $uflagc = "Blocked for invalid logon";
    }

    else
    {
        $uflagc = "";
    }
    return $uflagc;
}
}

На эхо

<?php
if (! empty($productResult)) {
foreach ($productResult as $key => $value) { 
?>
   <tr>
   <td><?php UFLAGAlias($productResult[$key]); ?></td>                
   </tr>
<?php
]
]

?>

Так как я ожидаю, что значения будут выводиться динамически, все значения столбца установлены как «Не заблокировано». Они должны быть условными. Я полагаю, что этого количества кода достаточно, так как отдых является приватным.

1 Ответ

1 голос
/ 02 июня 2019

Вы пытаетесь получить ключ, поскольку он у вас вверх ногами.

Вам нужно получить набор результатов, а затем - если нужно - пройти по результирующему ассоциативному массиву.

<?php
function UFLAGAlias($uflag){
   $uflags = array( 0 => 'Not Blocked'
                  , 64 => 'Blocked by system administrator'
                  , 192 => 'Blocked by system administrator\nBlocked for invalid logon'
                  , 128 => 'Blocked for invalid logon'
                  );
   return isset($uflags[$uflag]) ? $uflags[$uflag] : '';
}

if (! empty($productResult)) {
   while( $row = oci_fetch_assoc($productResult) ):
?>
   <tr>
   <td><?echo UFLAGAlias($row['UFLAG']); ?></td>                
   </tr>
<?php
   endwhile;
?>
...