IF within the while PHP / MYSQL

0

I'm listing some results within the while so my goal is that when any of the variables that cleverly in the while come empty, it list only those that come with content.

ps. is a poll system, I put to register 4 answers, but some questions only have yes or no as answers, so I want to list only those variables that come with content, follow the code below:

<?

      $consulta = "SELECT * FROM perguntas ORDER BY id ASC   " ;
      $resultado_consulta = mysql_query($consulta) or die("Erro no SQL: ".mysql_error());
    while($lista = mysql_fetch_array($resultado_consulta)){

    $id = anti_injection($lista['id']);
    $validacao_campo = anti_injection($lista['$validacao_campo']);
    $pergunta_principal = anti_injection($lista['$pergunta_principal']);
    $primeira_opcao = anti_injection($lista['$primeira_opcao']);
    $segunda_opcao = anti_injection($lista['$segunda_opcao']);
    $terceira_opcao = anti_injection($lista['$terceira_opcao']);
    $quarta_opcao = anti_injection($lista['$quarta_opcao']);

     ?>


    <fieldset>
        <br>
        <h2 class="fs-title"> <?php echo $lista['pergunta_principal']; ?> </h2>
        <br>
        <h3 class="fs-subtitle"></h3>

        </fieldset>

        <?php

if (!empty("$lista['primeira_opcao'];")){
echo"<?php echo $lista['primeira_opcao']; ?> <input type='radio' value='<?php echo $lista['primeira_opcao']; ?>' 
name='<?php echo $lista['validacao_campo']; ?>'> ";
}
if (!empty("$lista['$segunda_opcao'];")){
echo"<?php echo $lista['segunda_opcao']; ?> <input type='radio' value='<?php echo $lista['segunda_opcao']; ?>' 
name='<?php echo $lista['validacao_campo']; ?>'>";
}
if (!empty("$lista['$terceira_opcao'];")){
echo"<?php echo $lista['terceira_opcao']; ?> <input type='radio' value='<?php echo $lista['terceira_opcao']; ?>'
 name='<?php echo $lista['validacao_campo']; ?>'>";
 }
if (!empty("$lista['$quarta_opcao'];")){
echo"<?php echo $lista['quarta_opcao']; ?> <input type='radio' value='<?php echo $lista['quarta_opcao']; ?>' 
name='<?php echo $lista['validacao_campo']; ?>'>";
}
endif;
?>

        <br><br>
        <input type="button" name="previous" class="previous action-button" value="Anterior" />
        <input type="button" name="next" class="next action-button" value="Proxima" />
    </fieldset>

    <?php } ?>
    
asked by anonymous 02.03.2016 / 15:35

1 answer

2

Remove the quotation marks and semicolon within those if's:

!empty("$lista['primeira_opcao'];")

So that it looks like this:

!empty($lista['primeira_opcao'])

In your echo's, you're printing everything wrong. Change:

echo "<?php echo $lista['primeira_opcao']; ?> <input type='radio' value='<?php echo $lista['primeira_opcao']; ?>' name='<?php echo $lista['validacao_campo']; ?>'> ";

To:

echo $lista['primeira_opcao'] . "<input type='radio' value='" . $lista['primeira_opcao'] . "' name='" . $lista['validacao_campo'] . "'> ";
    
02.03.2016 / 17:39