2009-07-18 10 views
5

PHP + MySQLを使用して検索結果を表示する方法は不思議でしたが、結果にすべてのデータは表示されませんが、 )。また、要約にはキーワード部分が含まれています。 -100文字+キーワード+100文字のように表示されます。MySQL + PHP:全体の結果ではなく、検索結果を表示する方法

ありがとうございます!

+0

MySQLでは、LEFT()を使用して最初の200を取得できますが、-100の文字列を取得するには+ 100がより複雑になります。キーワードのインスタンスが複数回存在しますか? – Ian

+0

はい。複数のキーワードを使用できます。しかし、FIRSTキーワードの周りに要約を表示するだけで大​​丈夫です。 –

答えて

4

あなたの要約で使用するキーワードの最初のインスタンスを取ると罰金と仮定すると、あなたはこれと同様にPHPでクエリの結果を破ることができます:あなたは明らかにでき

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

を一度それを持っていたら、$outputとあなたのニーズに合ったものをしてください。

+0

ありがとうございました!しかし、$ output = substr($ data ....)とあなたの行に解析エラーが出ています。 –

+0

これは申し訳ありません。コピー/ペーストの括弧を駄目にしてしまいました。今すぐお試しください。 – zombat

+0

うわー、これはとてもクールです。 ! –

関連する問題