Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Como fazer um if nesse caso?

Eaw pessoal beleza? Eu to criando aqui uma aplicação WEB para cadastros de pessoas utilizando NOME, CPF e DATA DE NASCIMENTO. Então devido ao alto número de cadastros que essa aplicação pode ter, eu elaborei um código para fazer pesquisa de CADASTROS ESPECÍFICOS. O código ficou da seguinte forma:

A função que me traz os resultados da pesquisa:

function pesquisaCadastro($conexao) {
    $pesquisar = $_POST['pesquisar'];
    $cadastros_pesquisados = array();
    $query = "SELECT * FROM cadastros WHERE nome LIKE '%$pesquisar%'";
    $resultado_pesquisa = mysqli_query($conexao, $query);
    while ($nomes_cadastros = mysqli_fetch_assoc($resultado_pesquisa)) {
        array_push($cadastros_pesquisados, $nomes_cadastros);

    }

    return $cadastros_pesquisados;
}

E a pagina que mostra os resultados:

<?php require_once("cabecalho.php");
      require_once("logica-usuario.php");
      require_once("banco-cadastro.php");

ini_set('display_errors', true);
error_reporting(E_ALL);

verificaUsuario();
?>

<table class="table table-striped table-bordered">
    <thead>
        <tr>
            <th>Nome</th>
            <th>C.P.F</th>
            <th>Data de nascimento</th>
            <th></th>
            <th></th>
        </tr>
    </thead>

    <?php
        $cadastros_pesquisados = pesquisaCadastro($conexao);
        foreach($cadastros_pesquisados as $nomes_cadastros) :

    ?>

    <tbody>
        <tr>
            <td><?= $nomes_cadastros['nome'] ?></td>
            <td><?= $nomes_cadastros['cpf'] ?></td>
            <td><?= $nomes_cadastros['data_nascimento'] ?></td>
            <td><a class= "btn btn-primary" href="cadastro-altera-formulario.php?id=<?=$nomes_cadastros['id']?>">alterar</a></td>
            <td>
                <form action="remove-cadastro.php" method="post">
                    <input hidden="text" name="id" value="<?=$nomes_cadastros['id']?>" />
                    <button class="btn btn-danger">remover</button>
                </form>
            </td>
        </tr>
    </tbody>    

    <?php
        endforeach
    ?>
</table>

<?php include("rodape.php"); ?>


<?php include("rodape.php"); ?>

Mas preciso adicionar um if para avisar ao usuário que for pesquisar a possibilidade de não haver nenhum cadastro com o nome pesquisado. Como eu poderia fazer isso? Eu estou me enrolando devido ao uso desse foreach, eu não to sabendo onde encaixar o if...

2 respostas
solução!

Pelo que eu entendi, sua função retorna um array com os resultados. Para avisar o usuário que não foram encontrados registros, basta fazer um count neste array. Seu código ficaria da seguinte forma:

<tbody>
<?php
$cadastros_pesquisados = pesquisaCadastro($conexao);
if (count($cadastros_pesquisados)==0){
?>
<tr>
    <td colspan="5" align="center">Não existem informações</td>
</td>
<?php
}
foreach($cadastros_pesquisados as $nomes_cadastros) :
?>
<tr>
    <td><?= $nomes_cadastros['nome'] ?></td>
    <td><?= $nomes_cadastros['cpf'] ?></td>
    <td><?= $nomes_cadastros['data_nascimento'] ?></td>
    <td><a class= "btn btn-primary" href="cadastro-altera-formulario.php?id=<?=$nomes_cadastros['id']?>">alterar</a></td>
    <td>
        <form action="remove-cadastro.php" method="post">
            <input hidden="text" name="id" value="<?=$nomes_cadastros['id']?>" />
            <button class="btn btn-danger">remover</button>
        </form>
    </td>
</tr>
<?php
    endforeach
?>
</tbody>  

Daniel Bins, muito obrigado pela informação. Agora funcionou certinho, observando o código eu vi a estrutura que devo usar nestes casos e agora acho aprendi como fazer um if nesses casos. Vlw mesmo irmão!