[ Foro de PHP ]

Buscador multiple no realiza bien la consulta

03-Aug-2020 20:40
Invitado (towi62)
0 Respuestas

0


Buen dia,quiero realizar una búsqueda desde un formulario que contiene los valores columna1, columna2 y columna3. El cual paso los valores a formulaio procesa.php. Para luego meterla a la variable $consulta, que es la que se va encargar de realizar la busqueda.

   //Creamos el primer parametro en caso de que exista
   if ($_POST['columna1']!='') $parametros.="columna1=".$_POST['columna1'].'&';
   //Creamos el segundo parametro en caso de que exista
   if ($_POST['columna2']!='') $parametros.="columna2=".$_POST['columna2'].'&';
    //Creamos el tercer parametro en caso de que exista
   if ($_POST['columna3']!='') $parametros.="columna3=".$_POST['columna3'].'&';

   //Dividimos los parametros
   $porciones=explode('&',$parametros);

   //Contamos la cantidad de parametros
   $cantidad=count($porciones)-1;

    //Si hay mas de 1 parametro los unimos con AND para mysql
    if ($cantidad>1){
    for ($i=0; $i < $cantidad; $i++) {
     $consulta.= $porciones[$i].' AND ';
    }
    } else {
    $consulta.= $porciones[0].' AND ';
   }

   //Eliminamos el AND del final
   $consulta = substr ($consulta, 0, strlen($consulta) - 4);
Hasta ahí va todo bien ya que le hice un echo ha $consulta y si me muestra los valores.

Ahora ya que tengo esos valores unidos quiero hacer una búsqueda, la conexión si la hago muy bien pero no me devuelve resultados recogidos de la tabla contenedor que es la que contiene los valores que necesio.

   //SI SOLO HAY UNA PALABRA DE BUSQUEDA SE ESTABLECE UNA INSTRUCION CON LIKE
   $cadbusca=sprintf("SELECT * FROM contenedor WHERE datos2 LIKE '%$consulta%' OR datos1 LIKE
   '%$consulta%'OR datos3 LIKE '%$consulta%'");



    $result = $conn->query($cadbusca);
 
   if ($result->num_rows > 0) {
   // output data of each row
   while($row = $result->mysql_fetch_object()) {
   echo "Nombre: " . $row["datos1"]. " - edad: " . $row["datos2"]. "<br>";
   }
   } else {
   echo "0 resultados";

   }
         $conn->close();
 
:::::::::::::::::::::::::::::::::::: Connected successfully

0 resultados :::::::::::::::::::::::::::::::::::::::




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...