$rows
डेटा होगा जहां आपका कीवर्ड code
अपनी तालिका में मेल खाता है आप दोनों कीवर्ड के मिलान के लिए अपना कोड
$keyword = 'hello code';
$exloded = explode(' ', $keyword);
$query = 'SELECT * FROM A ';
$i = 0;
$params = array();
foreach ($exploded as $value):
if ($i == 0) {
$query .= ' WHERE `text` LIKE :value_'.$i;
} else {
$query .= ' OR `text` LIKE :value_'.$i;
}
$params[':value_'.$i] = '%'.$value .'%';
$i++;
endforeach;
$sth = $db->query($query);
$sth->execute($params);
$rows = $sth->fetchAll();
echo '<pre>';print_r($rows);echo '</pre>';
'; लूप में अपनी क्वेरी बनाएं (आपके द्वारा प्रदान किए गए कीवर्ड पर) और सभी मानों के मिलान के लिए अद्वितीय प्लेसहोल्डर्स को क्वेरी में असाइन करें
संपूर्ण पाठ खोज के लिए संपादित करें
पूर्ण पाठ खोज का उपयोग करके आप प्रदान किए गए कीवर्ड के साथ ठीक उसी वाक्यांश का मिलान कर सकते हैं, पूर्ण पाठ खोज के साथ काम करने के लिए आपको FULLTEXT
प्रकार की अनुक्रमणिका की आवश्यकता होती है ।
ALTER TABLE `A` ADD FULLTEXT INDEX `fulltextindex` (`text`);
और क्वेरी इस तरह होगी
$keyword = 'hello code';
$exloded = explode(' ', $keyword);
$where = '';
$i = 0;
$select = array();
$params = array();
foreach ($exploded as $value):
$select[]= ' MATCH(`text`) AGAINST(:value_'.$i.' IN BOOLEAN MODE) ';
if ($i == 0) {
$where .= ' WHERE MATCH(`text`) AGAINST(:value_'.$i.' IN BOOLEAN MODE)';
} else {
$where .= ' OR MATCH(`text`) AGAINST(:value_'.$i.' IN BOOLEAN MODE)';
}
$params[':value_'.$i] = $value ;
$i++;
endforeach;
$query ='SELECT *,'. implode( ' + ',$select).' AS score FROM A '.$where.' ORDER BY score DESC';
$sth = $db->query($query);
$sth->execute($params);
$rows = $sth->fetchAll();
echo '<pre>';print_r($rows);echo '</pre>';
'; उपरोक्त कोड
. जैसी क्वेरी उत्पन्न करेगाSELECT *,
MATCH(`text`) AGAINST('hello' IN BOOLEAN MODE)
+
MATCH(`text`) AGAINST('code' IN BOOLEAN MODE) AS score
FROM A
WHERE MATCH(`text`) AGAINST('hello' IN BOOLEAN MODE)
OR MATCH(`text`) AGAINST('code' IN BOOLEAN MODE)
ORDER BY score DESC
उपनाम score
उपरोक्त क्वेरी में प्रत्येक पंक्ति और उसके मिलान किए गए स्कोर के लिए मूल्य होगा, इस प्रकार आप अपने परिणाम को सबसे पहले रिकॉर्ड दिखाने के लिए अवरोही तरीके से ऑर्डर कर सकते हैं जिसमें उच्चतम स्कोर है।