Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Для просмотра ссылки ВойдиПодскажите как сделать поиск по сайту на сайте созданном на php + mysql, то бишь мне нужно понять какими функциями можно произвести поиск по базе данных и вывести в цикле результаты совпадений если они есть.
Подскажите как сделать поиск по сайту на сайте созданном на php + mysql, то бишь мне нужно понять какими функциями можно произвести поиск по базе данных и вывести в цикле результаты совпадений если они есть.
CREATE TABLE search_table(
word VARCHAR(50),
qid INT)
<?php
$query = "SELECT blob,identifier FROM your_table";
$result = mysql_query($query);
$number = mysql_numrows($result);
$j = 0;
WHILE ($j < $number) {
/* Наш "blob" */
$body = mysql_result($result,$j,"blob");
/* Наш "identifier */
$qid = mysql_result($result,$j,"qid");
/* Открыть файл с посторонними словами в массив */
$noise_words = file("noisewords.txt");
$filtered = $body;
/* Помещаем пробел перед первым словом */
$filtered = ereg_replace("^"," ",$filtered);
/* Теперь мы избавились от ненужных слов и
можем поместить то, что осталось - в массив
*/
/* Пробегаем циклом и удаляем неправильные слова */
for ($i=0; $i < count($noise_words); $i++) {
$filterword = trim($noise_words[$i]);
$filtered =
eregi_replace(" $filterword "," ",$filtered);
}
$filtered = trim($filtered);
$filtered = addslashes($filtered);
$querywords = ereg_replace(",","",$filtered);
$querywords = ereg_replace(" ",",",$querywords);
$querywords = ereg_replace("?","",$querywords);
$querywords = ereg_replace("(","",$querywords);
$querywords = ereg_replace(")","",$querywords);
$querywords = ereg_replace(".","",$querywords);
$querywords = ereg_replace(",","','",$querywords);
$querywords = ereg_replace("^","'",$querywords);
$querywords = ereg_replace("$","'",$querywords);
/* Теперь мы должны иметь что-то типа
'Word1','Word2','Word3'
так что теперь мы можем загнать все в массив
*/
$eachword = explode(",", $querywords);
/* наконец-то мы можем пробежаться по
массиву и поместить каждое слово в базу данных,
вместе со счетчиком
*/
for ($k=0; $k < count($eachword); $k++) {
$inputword = "INSERT INTO search_table
VALUES($eachword[$k],$qid)";
mysql_query($inputword);
}
/* Пробежаться по циклу еще разок с новыми данными */
$j++;
}
?>
SELECT count(search_table.word) as score, search_table.qid,your_table.blob
FROM search_table,your_table
WHERE your_table.qid = search_table.qid AND search_table.word
IN($querywords)
GROUP BY search_table.qid
ORDER BY score DESC";
<?php
$getresults = mysql_query($search);
$resultsnumber = mysql_numrows($getresults);
IF ($resultsnumber == 0) {
PRINT "Ничего не найдено. "
."Попробуйте использовать другие ключевые слова.";
} ELSEIF ($resultsnumber > 0) {
PRINT "Поиск вернул $resultsnumber результатов<BR>"
."Расположение по релевантности <BR><BR>";
for($count = 0; $count < $resultsnumber; $count++) {
$body = mysql_result($getresults,$count,"blob");
$qid = mysql_result($getresults,$count,"qid");
$body2print = substr($body, 0, 100);
$cnote = $count+1;
PRINT "$cnote. <a href=yourcontent.php3?qid=$qid> "
."<i>$body2print...</i></a><BR>";
}
}
?>