という名前のテーブルがnews
あり、これら 2 つのコード スニペットを使用して、テーブルをスキャンする検索エンジンを作成したいと考えていkeywords
ます。1 つのテーブルが接続され、非常にうまく動作している場合は、クエリにテーブルを追加する方がクリーンです。
私の仕事は、テーブルから行を返す検索エンジンを作成することです。検索エンジンはキーワードに基づいており、「ニューヨーク タイムズ」などの特定の用語に適していますが、ニュースを入力したい場合は、すべてのニュース サイトが ID 順に並べられています。しかし、キーワード「ニュース」を持つまったく異なる用語が、ID のために CNN とは異なり、テーブルのかなり高い位置に表示されることがあります。新しいテーブルがあれば、テーブルの整理がずっと簡単になります。そうすれば、入力された用語が「ニュース」の場合、サイトは ID で並べ替えられ、他のテーブルと衝突しても ID で並べ替えられます。
私のクエリは従来のクエリとは少し異なりますが、方法がわかりません
UNION
またはを介してテーブルを追加しますLEFT JOIN
何らかのタグ付き。
私のクエリは以下のとおりです。誰かに説明してもらいたいです: a)単純に何が悪いのかb)教えていただくか、以下のコードを貼り付けてください:
<?php
if( isset($_GET['k']) ){
$k = $_GET['k'];
}else{
$k = '';
}
$k = ( isset($_GET['k']) )? trim($_GET['k']) : '';
$terms = (strlen($k) > 0)? explode(' ', $k) : Array();
/* The code below is from a different part of the script */
$query = " SELECT * FROM scan WHERE ";
$terms = array_map('mysql_real_escape_string', $terms);
$i = 0;
foreach ($terms as $each) {
if ($i++ !== 0){
$query .= " AND ";
}
$query .= "keywords LIKE '%{$each}%'";
}