2009-07-18 12 views
5

si chiedeva come eseguire un risultato di ricerca utilizzando PHP + MySQL ma non mostra tutti i dati nel risultato ma solo una SINTESI (diciamo limitato a 200 caratteri). E il riepilogo conterrebbe esattamente la parte della parola chiave . Quindi -100 caratteri + parola chiave + 100 caratteri potrebbe essere il modo in cui verrebbe mostrato.MySQL + PHP: come eseguire la ricerca e visualizzare il riepilogo anziché il risultato completo

Grazie!

+0

Con MySQL è possibile ottenere i primi 200 utilizzando LEFT() ma ottenere -100 string +100 sarebbe più complicato. Ci sarebbero delle istanze della parola chiave esistenti più di una volta? – Ian

+0

Sì .. potrebbe essere più parole chiave. Ma sarei a posto solo mostrando il riassunto della prima parola chiave. –

risposta

4

Dando per scontato che vanno bene con l'assunzione di prima istanza della parola chiave da utilizzare nel vostro sintesi, si potrebbe rompere i risultati della query in PHP in un modo simile a questo:

$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; 
     } 
    } 

Ovviamente si potrebbe fai tutto ciò che è più adatto alle tue esigenze con $output una volta che hai avuto.

+0

Ehi, grazie! Ma sto ottenendo un errore di analisi sulla tua linea con $ output = substr ($ data .... –

+0

Oops, mi dispiace per questo. Incasinato le parentesi su copia/incolla. Prova ora. – zombat

+0

Wow, è così bello. ! Ho funzionato !! –

Problemi correlati