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 :)