търсене по ключова дума

hackera

Registered
Как мога да направя търсачка, която едновременно да търси по ключова дума в три полета от базата данни.
 
$duma = "something";
$sql = "SELECT * FROM table WHERE pole1 LIKE '%$duma%' OR pole2 LIKE '%$duma%' OR pole3 LIKE '%$duma%'";
 
Код:
<form method="post" action="search.php">

<input type="text" name="duma" size="20" />	
<input class="button" type="submit" name="tarsene" value="Търсене"> <input class="button" type="reset" value="Изчисти" />
</form>
										
									<?php
									include "config.php";
if(isset($_POST['tarsene'])) {

$opisanie = $_POST['opisanie']; 
$y4astvat = $_POST['y4astvat']; 
$title = $_POST['title']; 

$search = htmlspecialchars(addslashes($_POST['search']));
  
 
  mysql_query('SET NAMES cp1251');
  $duma = "something"; 
  $query = "SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%$duma%')OR (title LIKE '%$duma%')OR (opisanie LIKE '%$duma%') ";
  $result1 = mysql_query($query) or die(mysql_error());
  $query_data = mysql_fetch_assoc($result1);
  $numrows = $query_data['kolko']; 
 

 if($numrows == 0){echo"<strong>Няма намерени резултати! Опитай пак.</strong>";}else{
echo "<center><strong>Намерени резултати:</strong>"; 


mysql_query('SET NAMES cp1251');
$duma = "something"; 
$query = "SELECT * FROM movie WHERE (y4astvat LIKE '%$duma%')OR (title LIKE '%$duma%')OR (opisanie LIKE '%$duma%')";
$result1 = mysql_query($query); 

while($row = mysql_fetch_array($result1)) { 

$opisanie=$row['opisanie']; 
$title=$row['title']; 
$y4astvat=$row['y4astvat']; 

?>

<?php echo $title; ?>
				
<?php
}
}
}
?>

Това сглобих, но явно имам някъде грешка, защото каквото и да напиша излиза Няма намерени резултати! Опитай пак. :roll:
 
Изпълни заявката в phpMyAdmin с някаква дума която може да я намери и виж дали ще даде грешка... ?
 
raiden каза:
Изпълни заявката в phpMyAdmin с някаква дума която може да я намери и виж дали ще даде грешка... ?

Така:

Код:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$query = "SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%$Wrong%')' at line 1
$query = "SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%$Wrong%')OR (title LIKE '%$Wrong%')OR (opisanie LIKE '%$Wrong%') "

:roll:
 
raiden каза:
Не '%$Wrong%' а само '%Wrong%'

Сега не дава грешка в phpMyAdmin и вади резултата, но като пробвам през страницата пак пише Няма намерени резултати! Опитай пак.
 
Няма логика заявката да е точна, а кода да се бърка.
След $query_data = mysql_fetch_assoc($result1); сложи print_r($query_data); да видим какво връща
 
Код:
$result1 = mysql_query("SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%duma%')OR (title LIKE '%duma%')OR (opisanie LIKE '%duma%')") or die(mysql_error());

$query_data = mysql_fetch_assoc($result1);

print_r($query_data);

Я така
 
djpatzo каза:
Код:
$result1 = mysql_query("SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%duma%')OR (title LIKE '%duma%')OR (opisanie LIKE '%duma%')") or die(mysql_error());

$query_data = mysql_fetch_assoc($result1);

print_r($query_data);

Я така


Array ( [kolko] => 0 ) Няма намерени резултати! Опитай пак.
 
Код:
 $result1 = mysql_query("SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%duma%')OR (title LIKE '%duma%')OR (opisanie LIKE '%duma%')") or die(mysql_error());

$query_data = mysql_fetch_assoc($result1);

foreach($query_data as $k=>$v) {
echo($v);
}

Е то е странното че изкарва Array. Може би кода ти е в array. Ей така трябва да ти изведе само 0.
 
С print_r разбира се, че ще му изведе масив
А щом връща 0 значи грешката е в заявката.
Изкарай променливата извън стринга така:
Код:
$result1 = mysql_query("SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%".$duma."%')OR (title LIKE '%".$duma."%')OR (opisanie LIKE '%".$duma."%')") or die(mysql_error());
и да видим какво ще стане
 
raiden каза:
С print_r разбира се, че ще му изведе масив
А щом връща 0 значи грешката е в заявката.
Изкарай променливата извън стринга така:
Код:
$result1 = mysql_query("SELECT count(id) AS kolko FROM movie WHERE (y4astvat LIKE '%".$duma."%')OR (title LIKE '%".$duma."%')OR (opisanie LIKE '%".$duma."%')") or die(mysql_error());
и да видим какво ще стане

Няма намерени резултати! Опитай пак. :idea:
 

Back
Горе