Wyszukiwarka produktów na stronie

0

Witam wszystkich :)
Piszę sobie wyszukiwarkę na stronę i mam problem :)
Mam już wszystko napisane, ale z paginacją wyników, która mi nie odpowiada i staram się podpiąć nową paginacje.
Na starym skrypcie(ze starą paginacją) porcjuje wyniki, natomiast w drugiej nie(nawet jak wpiszę ręcznie w adres strony)

Stary kod na którym działa paginacja:

<?php
echo '<h2>Wyszukiwarka</h2>';
echo '<br /><br />';
if(isset($_GET['wynik'])) 
{
	$wynik_filtru = trim(zabezpiecz($_GET['wynik'])); 
	echo '<form action="http://nportfolio.pl/sklep/index.php?page=sear" method="get">
	<input type="hidden" name="page" value="sear" />
	<input type="text" name="wynik" value="'.$wynik_filtru.'"/>
	<button>Szukaj</button>
	</form>';
}
else
{
	echo '<div class="wyszukiwarkas"><form action="http://nportfolio.pl/sklep/index.php?page=sear" method="get">
	<input type="hidden" name="page" value="sear" />
	<input type="text" name="wynik" value="Szukaj w serwisie..." onclick="this.value=\'\'" />
	<button>Szukaj</button>
	</form></div>';
}
if(empty($wynik_filtru) or !preg_match('/^[a-zA-Z0-9]+$/i', $wynik_filtru))
{
	echo '<br /><br /><font color="red"><b>Formularz został wypełniony niepoprawnie!<br /> Nie można wyświetlić wyników wyszukiwania!</b></font>';
	echo '<br /><br />';
}
else
{
	$subpage = $_GET['page'];
	$perPage = 10;
	if (!empty($_GET['subpage']))
	{
		if (is_numeric($_GET['subpage']))
		{
			$subpage = (int) $_GET['subpage'];
		}
	}
	if ($subpage < 1)
	{
		$subpage = 1;
	}
	$start = ($subpage - 1) * $perPage;
	$zapytanie = "(SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE nazwa LIKE '%{$wynik_filtru}%')
	UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE tresc LIKE '%{$wynik_filtru}%')
	UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE kategoria LIKE '%{$wynik_filtru}%') ORDER BY `id` DESC LIMIT ".$start.", ".$perPage."";
	$idzapytania = mysql_query($zapytanie) or die (mysql_error());
	$zapytanie2 = "(SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE nazwa LIKE '%{$wynik_filtru}%')
	UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE tresc LIKE '%{$wynik_filtru}%')
	UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE kategoria LIKE '%{$wynik_filtru}%')";
	$idzapytania2 = mysql_query($zapytanie2);
	$ilosc_wierszy = mysql_num_rows($idzapytania2);
	$oblicz = mysql_num_rows($idzapytania2);
}
if(isset($oblicz))
{
	echo '<br /><br />Znaleziono: '.$oblicz.'<br /><br />';
	if (!isset($_GET['id']) or empty($_GET['id']))
	{
		while ($wiersz = mysql_fetch_array($idzapytania))
		{
			if($wiersz['nazwa'] != '')
			{
				$wyraz = explode(' ',substr($wiersz['nazwa'], 50)); 
				$wyrazy = substr($wiersz['nazwa'], 0, 50).$wyraz[0];
				$wyraz = $wyrazy;
				$array = array('[url]','[/url]','[b]','[/b]','[i]','[/i]','[u]','[/u]','[small]','[/small]',
				'[big]','[/big]','[p]','[/p]','[center]','[/center]','[color=(http://)?(.*?)]','[/color]',
				'[size=(http://)?(.*?)]','[/size]','[hr=([0-9]{1,2}|100)]','[/hr]');
				$wyrazek = str_replace($array,'',$wyraz);
				echo '<a style="text-decoration: none;" href="/sklep/index.php?page=kat&subkat='.$wiersz['kategoria'].'&id='.$wiersz['id'].'"><b>'.zabezpiecz($wyrazek).'</b></a>';
				echo'<br /><br />';
			}
		}
		echo '<div id="page_numbers"><ul><hr />';
		$prev = $subpage - 1;
		$next = $subpage + 1;
		$prevLink = '/sklep/index.php?page=sear&wynik='.$wynik_filtru.'&subpage='.$prev.'';
		$nextLink = '/sklep/index.php?page=sear&wynik='.$wynik_filtru.'&subpage='.$next.'';
		if($subpage > 1)
		{
			echo'<li class="page_info"><a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona</a></li> ';
		}
		$stron=ceil($ilosc_wierszy/$perPage);
		for($i=1; $i<=$stron; ++$i)
		{
			if($i==$subpage)
			{
				echo '<li class="page_info"><b>'.$i.' </b></li>';
			}
			else
			{
				echo '<li class="page_info"><a style="text-decoration: none;" href="/sklep/index.php?page=sear&wynik='.$wynik_filtru.'&subpage='.$i.'">'.$i.' </a></li>';
			}
		}
		if($subpage < $stron)
		{
		echo ' <li class="page_info"><a style="text-decoration: none;" href="'.$nextLink.'">Następna strona</a></li>';
		}
		echo '</ul></div>';
	}
}
?>

Nowy kod na którym nie działa paginacja

<?php
echo '<h2>Wyszukiwarka</h2>';
echo '<br /><br />';
if(isset($_GET['wynik'])) 
{
	$wynik_filtru = trim(zabezpiecz($_GET['wynik'])); 
	echo '<form action="http://nportfolio.pl/sklep/index.php?page=search" method="get">
	<input type="hidden" name="page" value="search" />
	<input type="text" name="wynik" value="'.$wynik_filtru.'"/>
	<button>Szukaj</button>
	</form>';
}
else
{
	echo '<div class="wyszukiwarkas"><form action="http://nportfolio.pl/sklep/index.php?page=search" method="get">
	<input type="hidden" name="page" value="search" />
	<input type="text" name="wynik" value="Szukaj w serwisie..." onclick="this.value=\'\'" />
	<button>Szukaj</button>
	</form></div>';
}
if(empty($wynik_filtru) or !preg_match('/^[a-zA-Z0-9]+$/i', $wynik_filtru))
{
	echo '<br /><br /><font color="red"><b>Formularz został wypełniony niepoprawnie!<br /> Nie można wyświetlić wyników wyszukiwania!</b></font>';
	echo '<br /><br />';
}
else
{
	$licz = mysql_query('SELECT COUNT(id) FROM `cms_sklep_produkty`');
	$ile = mysql_fetch_array($licz);
	$na_stronie = 10;
	if(!empty($_GET['subpage']))
	{
		if($_GET['subpage']>0 and $_GET['subpage']%$na_stronie==0 and $_GET['subpage']<$ile[0])
		{
			$aktualnie = $_GET['subpage'];
		}
	}
	else
	{
		$aktualnie = 0;
	}
	echo '<br /><br />Znaleziono: '.$ile[0].'<br /><br />';
	$porcjowanie = porcjowanie($aktualnie, $ile[0], $na_stronie, '/sklep/index.php?page=download&subpage=', '');
	$pobierz = mysql_query("(SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE nazwa LIKE '%{$wynik_filtru}%')
	UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE tresc LIKE '%{$wynik_filtru}%')
	UNION ALL (SELECT `id`, `nazwa`, `tresc`, `kategoria`, `cena`, `stan`, `zdjecie` FROM cms_sklep_produkty WHERE kategoria LIKE '%{$wynik_filtru}%') ORDER BY `id` DESC LIMIT $aktualnie, $na_stronie");
	if (!isset($_GET['id']) or empty($_GET['id']))
	{
		while ($wiersz = mysql_fetch_array($pobierz))
		{
			if($wiersz['nazwa'] != '')
			{
				$wyraz = explode(' ',substr($wiersz['nazwa'], 50)); 
				$wyrazy = substr($wiersz['nazwa'], 0, 50).$wyraz[0];
				$wyraz = $wyrazy;
				$array = array('[url]','[/url]','[b]','[/b]','[i]','[/i]','[u]','[/u]','[small]','[/small]',
				'[big]','[/big]','[p]','[/p]','[center]','[/center]','[color=(http://)?(.*?)]','[/color]',
				'[size=(http://)?(.*?)]','[/size]','[hr=([0-9]{1,2}|100)]','[/hr]');
				$wyrazek = str_replace($array,'',$wyraz);
				echo '<a style="text-decoration: none;" href="/sklep/index.php?page=kat&subkat='.$wiersz['kategoria'].'&id='.$wiersz['id'].'"><b>'.zabezpiecz($wyrazek).'</b></a>';
				echo'<br /><br />';
			}
		}
	}
	echo '<br />'.$porcjowanie.'';
}
?>

Nie mam pojęcia dlaczego nowy kod nie dzieli wyników na strony

Proszę o pomoc :)

0

Właśnie zobaczyłem, że problemem jest zapytanie bazy danych. Jeśli robię tylko jedno tj. bez UNION ALL to pokazuje porcjowanie, a ja potrzebuje z UNION ALL(przynajmniej tak mi się wydaje)

1 użytkowników online, w tym zalogowanych: 0, gości: 1