Use if / else condition within a while

2

Good morning !! I need some help. In the code below, I generate a file .txt delimited by ";" . However, within the While , in the array, I would like to include a condition, eg:

while ( $linha = mysql_fetch_array ( $select ) ) { $conteudo = "

if{$_SESSION[nivelAcesso]==3{
$linha[sap];
$linha[descricao];
}
$linha[segmento]; 




    <?php

    header ( 'Content-type: text/plain' );
    header ( 'Content-Disposition: attachment; filename="EQUIPAMENTOS_DETALHADOS_' . $date . '.txt"' );

    $NOME_ARQUIVO = "EQUIPAMENTOS_DETALHADOS.txt";
    ?>
    <?php

    $select = mysql_query ( "SELECT materiais.sap,materiais.descricao,materiais.segmento,descricaoRegiao,estoque.serial, estoque.sim_card, estoque.cas_id ,DATE_FORMAT(estoque.data_cadastro,'%d/%m/%Y') as dataCadastro,Status_equipamento,estoque.notaFiscal from estoque inner join materiais on estoque.id_material=materiais.id inner join regioes_estoque on estoque.regional=regioes_estoque.regiao where materiais.almoxarifado='$_SESSION[almoxarifado]' and estoque.serial <> ' ' and estoque.serial not in (select serial from movimento)" ) or die ( mysql_error () );
    $saida = fopen ( "EQUIPAMENTOS_DETALHADOS.txt", "a+" );
    echo "COD.SAP;DESCRICAO;SEGMENTO;DESCRICAO_REIGAO;SERIAL;SIM_CARD;CAS_ID;DATA_CADASTRO;STATUS_EQUIPAMENTO;NOTA_FISCAL \n";
    while ( $linha = mysql_fetch_array ( $select ) ) {
        $conteudo = "$linha[sap];$linha[descricao];$linha[segmento];$linha[descricaoRegiao];$linha[serial];$linha[sim_card];$linha[cas_id];$linha[dataCadastro];$linha[Status_equipamento];$linha[notaFiscal]; \n";
        $result = fputs ( $saida, $conteudo );
        echo $conteudo;
    }
    ;
    fclose ( $saida );

    unlink ( $NOME_ARQUIVO );
    ?>
    
asked by anonymous 20.10.2016 / 12:02

1 answer

1

Just add the if within the while loop and concatenate the data according to the result of the operation using the concatenation operator .= .

PHP documentation teaches you how to use constructor if and also teaches you how to use string operators .

while ( $linha = mysql_fetch_array ( $select ) ) {
   // utilizamos o operador "=" para atribuir um valor inicial a variável "conteudo"
   $conteudo = "$linha[sap];$linha[descricao];$linha[segmento];$linha[descricaoRegiao];$linha[serial];$linha[sim_card];$linha[cas_id];$linha[dataCadastro];$linha[Status_equipamento];$linha[notaFiscal];"

   // se o nível de acesso for igual a 3, 
   // então é concatenado uma string à variável "conteudo"
   if($_SESSION[nivelAcesso]==3) {
        $conteudo .= "$linha[sim_card];$linha[cas_id];";
   }

   // contatenamos novamente uma nova string à variável "conteudo"
   $conteudo .= '\n';

   $result = fputs ( $saida, $conteudo );
   echo $conteudo;
}

The concatenation operator .= is the same thing as:

// ou seja, a variável é igual ao próprio valor
// concatenado com uma nova string.
$conteudo = 'Olá';
$conteudo = $conteudo . ' mundo';

echo $conteudo; // Olá mundo

The same result using the concatenation assignment operator:

$conteudo = 'Olá';
$conteudo .= ' mundo';

echo $conteudo; // Olá mundo
    
20.10.2016 / 12:10