紛らわしいタイトルについて申し訳ありませんが、私は初心者であり、私の問題を何と呼ぶべきかわかりません。私はビジネスリスティングWebサイトを作成するために構築(well..trying)しており、テーブルから結果を取得するこの検索スクリプトを見つけました。そこで、これを貼り付けて試してみましたが、一度に1つのフィールドしか検索できず、2つのフィールドを同時に検索することはできません。フィールド「company_name」からのデータのみが再調整されます。ただし、これを柔軟にして、フィールド名「categories」から検索するように追加する必要があるため、要するに、「company_name」と「categories」フィールドの2つの行を検索するためにPHPが必要です。
これがスクリプトですが、構文を追加する方法がわかりません。
$keywords = preg_split('/[\s]+/',$keywords);
$total_keywords = count($keywords);
foreach($keywords as $key=>$keyword) {
$where .= "`company_name` LIKE '%$keyword%' ";
if($key != ($total_keywords - 1)) {
$where .= " AND ";
}
問題はここにあります:$where .= "
company_nameLIKE '%$keyword%' ";
ここでスクリプト全体を見る必要がある場合は、ここにあります。
function search_clients($keywords){
$returned_results = array();
$where = "";
$keywords = preg_split('/[\s]+/',$keywords);
$total_keywords = count($keywords);
foreach($keywords as $key=>$keyword) {
$where .= "`company_name` LIKE '%$keyword%' ";
if($key != ($total_keywords - 1)) {
$where .= " AND ";
}
}
$results = "SELECT `company_name`, LEFT(`company_details`,150)
as `company_details`, `category` FROM `clients`
WHERE $where";
$results_num = ($results = mysql_query($results)) ? mysql_num_rows($results) : 0 ;
if($results_num === 0) {
return false;
} else {
while($results_row = mysql_fetch_assoc($results)) {
$returned_results[] = array(
'company_name' => $results_row['company_name'],
'company_details' => $results_row['company_details'],
);
}
return $returned_results;
}
}