2009-07-18 15 views
5

se preguntaba cómo hacer un resultado de búsqueda usando PHP + MySQL pero no mostraba todos los datos en el resultado sino solo un RESUMEN (digamos limitado a 200 caracteres) Y el resumen contendría exactamente la porción de palabra clave . Así que -100 caracteres + palabra clave + 100 caracteres podría ser cómo se mostraría.MySQL + PHP: Cómo buscar y mostrar un resumen en lugar de un resultado completo

Gracias!

+0

Con MySQL puede obtener los primeros 200 usando IZQUIERDA() pero obtener -100 de cadena +100 sería más complicado. ¿Habría alguna instancia de la palabra clave existente más de una vez? – Ian

+0

Sí ... podría ser varias palabras clave. Pero estaría bien con solo mostrar un resumen sobre la palabra clave FIRST. –

Respuesta

4

Asumiendo que están muy bien con la toma de la primera instancia de la palabra clave para utilizar en su resumen, se podría romper los resultados de la consulta en PHP de una manera similar a esto:

$sql = "SELECT data_field FROM your_table WHERE data_field LIKE '%".$keyword."%'"; 
    $res = mysql_query($sql); 
    while($row = mysql_fetch_array($res)) { 
     $data = $row['data_field'];   
     $first_pos = strpos($data,$keyword); 
     if ($first_pos !== false) { 
        $output = substr($data,max(0,$first_pos - 100),200 + strlen($keyword)); 
      echo $output; 
     } 
    } 

Obviamente usted podría haz lo que se adapte a tus necesidades con $output una vez que lo tengas.

+0

¡Hola, gracias! Pero obtengo un error de análisis en su línea con $ output = substr ($ data ... –

+0

Oops, perdón por eso. Ensuciaron los corchetes en copiar/pegar. Pruébalo ahora. – zombat

+0

Wow esto es genial. Hola, gracias ! Lo conseguí trabajando! –

Cuestiones relacionadas