• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wyszukiwarka wyrzuca wszystkie możliwe rekordy

–3 głosów
282 wizyt
pytanie zadane 30 stycznia 2017 w SQL, bazy danych przez Paweł Kościelny Początkujący (360 p.)

Witam, 

napisałem search engine który na local hoscie wyrzuca poprawne wyniki, natomiast na hostingu już wszystkie możliwe...

Kod szukajki

<?php
	
	$szukana2 = $_POST['szukaj'];
	
	if (isset($_POST['szukaj']))
	{
		$wszystko_OK=true;
		
		if ((strlen($szukana2)<2) || (strlen($szukana2)>45))
		{
			$wszystko_OK=false;
			$_SESSION['e_blad']="Wprowadź od 2 do 45 znaków!";
		}
		if($wszystko_OK==true)
		{
			
		}	
		
		else
		{
		header('Location: index.php');
		exit();
		}
	}

	
	
	$szukana1 = mysql_real_escape_string($szukana2); 
	
	$szukana=htmlentities($szukana1,ENT_QUOTES,"UTF-8");
	
	
	$wyrazy=explode(" ",$szukana);
	
	$query="SELECT * FROM filmy WHERE ";
	
	$i=0;
	
	foreach($wyrazy as $kazdy)
	{
		$i++;
		
		if($i==1)
		{
			$query.=" keywords LIKE '%$kazdy%' ";
		}
		else
			$query.="OR keywords LIKE '%$kazdy%' ";
	}
	
	require_once "polaczenie.php";
	
	$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
	
	
	if($polaczenie->connect_errno!=0)
	{
		echo"Error".$polaczenie->connect_errno;
	}
	else
	{}
		
		if($rezultat=$polaczenie->query($query))
		{
			$ile_wynikow=$rezultat->num_rows;
			if($ile_wynikow>0)
			{
				while($row=$rezultat->fetch_assoc())
				{
				$id = $row['id'];
				$title = $row['title'];
				$description = $row['description'];
				$keywords = $row['keywords'];
				$link = $row['link'];
				
				echo"<p class='search_results'><a href='$link'>$title</a><br/>
				<a href='$link'><img style=' margin:6px;' src='$description'></a>
				
				</p>";
				}				
			$rezultat->close();
			}
			else	
			{
			echo "<p class='search_results'>Brak Wynikow </p>";
			}			
		
		$polaczenie->close();
		}
	

?>

 

2
komentarz 30 stycznia 2017 przez efiku Szeryf (75,160 p.)
    $szukana1 = mysql_real_escape_string($szukana2);

    $szukana=htmlentities($szukana1,ENT_QUOTES,"UTF-8");

    $polaczenie = new mysqli($host, $db_user, $db_password, $db_name);

Normalnie z 10 źródeł zlepek kodu. :/

Tak z ciekawości, co chcesz osiągnąć tym ifem w 1 foreach? :D 

komentarz 30 stycznia 2017 przez Paweł Kościelny Początkujący (360 p.)
bo potem mi dodaje "OR keywords LIKE '%$kazdy%' "; i cały czas jest OR

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 593 wizyt
0 głosów
2 odpowiedzi 1,092 wizyt
pytanie zadane 9 grudnia 2018 w PHP przez jared Gaduła (3,600 p.)
0 głosów
1 odpowiedź 695 wizyt
pytanie zadane 19 grudnia 2018 w PHP przez patrick167 Początkujący (260 p.)

93,731 zapytań

142,668 odpowiedzi

323,286 komentarzy

63,289 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...