Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

247
Vistas
Código de barras de búsqueda para múltiples palabras clave cuando solo 1 coincide

Así que busqué en Internet y me registré en este sitio, ya que la mayoría de mis búsquedas en Google me llevan aquí. Casi terminé de hacer mi sitio web y usé una plantilla que amplié. Tiene una barra de búsqueda que no funciona. Lo tengo funcionando en su mayoría. el problema que tengo es que cuando pongo una palabra clave que tiene MySQL funciona bien, cuando pongo una palabra clave solitaria que sé que no existe da una respuesta adecuada sin resultados. Ahora mi problema es cuando mezclas los 2 errores en la base de datos. Aquí está mi código php que he reunido hasta ahora...

 <?php $db = mysqli_connect('host','username','password') or die('Error connecting to MySQL server.'); $keyword = $_GET['keyword']; $terms = explode(" ", $keyword); $query = "SELECT * FROM searchresults WHERE "; foreach ($terms as $each) { $i=0; if ($i == 0) $query .= "pagebody LIKE '%$each%' "; else $query .= " OR pagebody LIKE '%$each%' "; } mysqli_query($db, $query) or die('Error querying database.'); $result = mysqli_query($db, $query); $row = mysqli_fetch_array($result); if ($row > 0) { while ($row = mysqli_fetch_array($result)) { $id = $row['id']; $title = $row['title']; $description = $row['description']; $pagebody = $row['pagebody']; $link = $row['link']; echo "<h2><a href='$link'>$title</a></h2></br> $description<br/><br/>"; } } else echo "No results found for.\"<b>$keyword</b>\""; ?>

Cualquier ayuda sería muy apreciada. Necesito averiguar cómo hacerlo para que, si alguna de las palabras clave no se reconoce, no se produzca un error.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Esto no solucionará los problemas que tiene al escapar de su entrada de usuario, pero responderá a su pregunta para resolver el error de búsqueda; su código original mantiene $i igual a 0 a través de cada iteración del bucle foreach, por lo que la consulta sale como:

 SELECT * FROM searchresults WHERE pagebody LIKE '%$each%' pagebody LIKE '%$each%' pagebody LIKE '%$each%'

Necesitas modificar las siguientes líneas:

 $query = "SELECT * FROM searchresults WHERE "; foreach ($terms as $each) { $i=0; if ($i == 0) $query .= "pagebody LIKE '%$each%' "; else $query .= " OR pagebody LIKE '%$each%' "; }

cambiar eso a:

 $i=0; $query = "SELECT * FROM searchresults WHERE"; foreach ($terms as $each) { if($i == 0){ $query .= " pagebody LIKE '%$each%'"; }else{ $query .= " OR pagebody LIKE '%$each%'"; } $i++; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda