Home Foros FOROS PARA AYUDAROS ENTRE VOSOTROS. EL PROFESOR AQUÍ NO RESPONDE Foro de PHP/MySql No puedo lograr que de un mensaje de resultado no encontrado en búsqueda en DB

No puedo lograr que de un mensaje de resultado no encontrado en búsqueda en DB

Etiquetado: , , ,

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Autor
    Entradas
  • #19094

    Ariel Martin Bellio
    Participante

    `<?php
    // acá va desde el <!doctype html> los <meta> los .js y los .css de boostrap que es el mismo en todas las páginas
    include(‘cabeza.php’);
    ?>
    <script type=»text/javascript»>
    function validarForm(formulario)
    {
    if(formulario.palabra.value.length==0)
    { //¿Tiene 0 caracteres?
    formulario.palabra.focus(); // Damos el foco al control
    alert(‘Debes rellenar el campo «Búsqueda…».’); //Mostramos el mensaje
    return false;
    } //devolvemos el foco
    return true; //Si ha llegado hasta aquí, es que todo es correcto
    }
    </script>
    </head>
    <body>
    <nav class=»navbar navbar-expand-lg sticky-top navbar-dark bg-danger»>
    <div class=»container-fluid»>
    <a href=»#» class=»navbar-brand»>TeBusco.TK</a>
    <button type=»button» class=»navbar-toggler» data-bs-toggle=»collapse» data-bs-target=»#navbarCollapse»>
    <span class=»navbar-toggler-icon»></span>
    </button>
    <div class=»collapse navbar-collapse justify-content-between» id=»navbarCollapse»>
    <div class=»navbar-nav»>
    <a href=»index.php» class=»nav-item nav-link»><i class=»bi-house-door»></i> Portada</a>
    <a href=»buscado.php» class=»nav-item nav-link»><i class=»bi-text-right»></i> Agregar</a>
    <a href=»ayuda.php» class=»nav-item nav-link»><i class=»bi-question-circle»></i> Ayuda</a>
    </div>
    <form class=»d-flex» action=»buscar_algo.php» method=»get» enctype=»text/plain» onSubmit=»return validarForm(this)»>
    <div class=»input-group»>
    <input name=»palabra» type=»text» class=»form-control» placeholder=»Búsqueda…»>
    <button type=»submit» name=»buscar» value=»buscar» class=»btn btn-secondary»><i class=»bi-search»></i> Buscar</button>
    </div>
    </form>
    </div>
    </div>
    </nav><br>
    <div align=»center»>
    <h1 style=»color:green;»>Animales Perdidos y Encontrados</h1></div>
    <?php

    include ‘config.php’;

    if($_GET[‘buscar’]) {

    $buscar = $_GET[‘palabra’];

    $consulta_mysql=mysqli_query($con,»SELECT * FROM informacion WHERE fecha like ‘%$buscar%’ or animal like ‘%$buscar%’ or sexodelanimal like ‘%$buscar%’ or pais like ‘%$buscar%’ or provincia like ‘%$buscar%’ or ciudad like ‘%$buscar%’ or calleyaltura like ‘%$buscar%’ or masdatos like ‘%$buscar%'»);

    while($registro=mysqli_fetch_assoc($consulta_mysql)){

    // esto es lo que no se hacer para cuando no hay resultados // validaradmin y validaremail son 2 variables que se guardan en la base de datos para que solo se muestren si el post fué validado y el email existe y el usuario lo validó en caso de ser 0 uno de los 2 entonces no se debe mostrar el registro del post
    if($registro[‘validaradmin’]!==»1″ || $registro[‘validaremail’]!==»1″ || $consulta_mysql==»»){

    //esto es lo que debería mostrar cuando validaradmin=0 y validaremail=0 y la $consulta_mysql da un resultado vacío // no funciona, cuando hay algo correcto en la búsqueda muestra los registros pero cuando busco algo que no hay en ningun campo no muestra el siguiente mensaje:
    echo «No hay resultados para: «.$buscar;

    }else{

    ?>
    <table width=»100%» class=»table table-responsive border border-danger»>
    <tr class=»table-warning border border-danger»>
    <td width=»181″ rowspan=»3″ class=»table-warning»><img src=»imagenes/fotos/<?php echo $registro[‘foto’];?>» width=»180″ alt=»Foto del animal» class=»border border-danger»></td>
    <td width=»81%» height=»253″ class=»table-warning»>
    <blockquote>
    Publicado el: <strong><?php echo $registro[‘fecha’];?></strong>

    Es un/una: <strong><?php echo $registro[‘animal’];?></strong>, sexo del animal <strong><?php echo $registro[‘sexodelanimal’];?></strong>.

    Se perdió en el país <strong><?php echo $registro[‘pais’];?></strong>, provincia ó región <strong><?php echo $registro[‘provincia’];?></strong>, ciudad <strong><?php echo $registro[‘ciudad’];?></strong>, calle y número <strong><?php echo $registro[‘calleyaltura’];?></strong>.

    Más información: <strong><?php echo $registro[‘masdatos’];?></strong>

    </blockquote>
    </td>
    </tr>
    <tr class=»table-warning border border-danger»>
    <td height=»42″ class=»table-warning»>
    <div align=»right»>
    <form action=»ver_post.php» method=»get» enctype=»multipart/form-data»>
    <input name=»id» id=»id» type=»hidden» value=»<?php echo $registro[‘id’];?>»>
    <input name=»ver_post» id=»ver_post» type=»hidden» value=»vp»>
    <input name=»ver» type=»submit» id=»ver» class=»btn btn-danger» value=»Ver publicación»>
    </form>
    </div>
    </td>
    </tr>
    </table>
    <?php

    }

    }

    }

    mysqli_close($con);

    // acá va el footer que es el mismo en todas las páginas
    include (‘pie.php’);

    ?>

    #19099

    Sergio
    Participante

    Hola, tienes que usar la función mysqli_num_rows o mysqli_affected_rows, una de las dos te servirá. En la página de PHP hay ejemplos de que utilizarlas.

    Tienes que utilizar un bloque IF y dentro de este iría el WHILE con el resto de tu código.

Viendo 2 entradas - de la 1 a la 2 (de un total de 2)
  • Debes estar registrado para responder a este debate.