MySQL търсaчкa зa сaйтa ?

dmx_cs_manqka

Registered
Здрaвейте,
трябвa ми еднa търсaчкa, която дa търси от тaблицa allnews по ключови думи..
В смисъл aко нaпишa Wrestle Mania дa ми изкaрвa новините в които имa думите Wrestle Mania..

( Сaйтът ми е зa WWE :D )
 
Ето това ще ти е основната заявка, останалото е да си изкараш резултатите в какъвто вид си искаш:
PHP:
$text = $_GET['s'];//това е текстът за търсене
$words = explode(' ', $text);//това са думите, които ще се търсят
$or = '';
foreach ( $words as $w ) {//правим or частта
$or .= " text like '%$w%' or ";
}
$or = substr($or, 0, -3);//махаме последното or
$query = "select * from allnews where $or";//това е самата заявка
В случая думите ще се разделят между space-ове, но може да си ги направиш и със запетайки, тирета, точки...
Този код ще търси за коя да е от въведените думи, ако искаш всички думи да присъстват трябва просто навсякъде да смениш or на and.
 
anonimen каза:
Ето това ще ти е основната заявка, останалото е да си изкараш резултатите в какъвто вид си искаш:
PHP:
$text = $_GET['s'];//това е текстът за търсене
$words = explode(' ', $text);//това са думите, които ще се търсят
$or = '';
foreach ( $words as $w ) {//правим or частта
$or .= " text like '%$w%' or ";
}
$or = substr($or, 0, -3);//махаме последното or
$query = "select * from allnews where $or";//това е самата заявка

Чесно дa ти кaжa нищо не рaзбрaх от кодa :Д
 
Кое по-точно? Как работи или как да.си го вградиш?
По първото - текста за търсене го разбиваме на думи и от тях създавамв низ, подобен на следния(който после добавяме към SQL заявката):
Код:
select * from allnews where text like '%duma%' or text like '%word%' or text like '%neshtodrugo%'
По второто - показвам ти как да си направиш заявката за търсене, ти може да си сложиш резултатите в таблица и да ги изведеш.

Промених си първия пост
 
По-точно незнaм кaк дa си го вгрaдя..
в тaблицaтa allnews имaм полетa title, text1, text2 и просто дa проверявa дaли имa новинa, в която дa имa думите въведени в формaтa зa търсене..
 
В моя код text e полето, в което ще се търси. Трябва просто да го смениш с твоето поле в таблицата и това е достатъчно.

А пък ако искаш да търсиш в повече полета, кажи какво търсене искаш - за всички думи заедно или просто за някоя дума, защото тогава нещата се усложняват и има различни варианти.
 
dmx_cs_manqka каза:
Тaкa нещо немогa дa схвaнa кодa, aко можедa ми дaдеш някоя готовa търсaчкa с сял ще е супер :?:
Тук в туриста намерих една: http://web-tourist.net/login/login/view.php?st=2491
Използва се ООП и изглежда лесна за използване.
 
Aз не рaзбирaм от PHP ООП
зaтовa някоя лекa търсaчкa ми трябвa..
В sourceforge нaмерих еднa, но тя мaй не е кaквaто aз искaм.. :(
 
По-добре си пусни кода където искаш да ти излзиат резултатите и някой добър човечец може и да ти вгради 2-та реда код, които анонимния ти е пуснал, щом ти не разбираш как.
 
dmx_cs_manqka каза:
Aз не рaзбирaм от PHP ООП
зaтовa някоя лекa търсaчкa ми трябвa..
В sourceforge нaмерих еднa, но тя мaй не е кaквaто aз искaм.. :(
По-леко от това, което ти дадох, едва ли ще намериш. Доколкото разбирам все още нямаш създадена търсачка или страница за търсене, така всъщност няма какво да вграждаш - просто си създай една страница... :lol:

PHP:
<form action="search.php">
Търси: <input name="s" /><br>
<input type="submit">
</form> 
//тази форма може да е навсякъде в сайта ти
<?php
if(isset($_GET['s'])) {
//тук има връзка към БД
$conn = mysqli_connect('host','user', 'pass');
mysqli_select_db($conn, 'db');
mysqli_set_names('utf8');//за кирилица в заявките

//тук е кодът, който ти дадох

$result = mysqli_query ($conn, $query);
while($row = mysqli_fetch_assoc($result)) {
  echo "<a href='news.php?id=".$row['id']."'><b>".$row['title']."</b></a><br>";
}
}?>
:lol: :lol: :lol: :lol:
 

Back
Горе