
Mam pewien problem z doprowadzeniem do końca projektu strony który pobiera wyniki z bazy danych, wyświetla je w formie tabeli i całość jest poddawana paginacji.
Problem dotyczy wyszukiwania oraz filtrowania.
Filtrowanie mógłbym wykonać "łopatologicznie" przenosząc cały kod do nowej strony i wstawiając w odpowiednie miejsce zmienne natomiast z wyszukiwaniem już się tak nie da, przynajmniej nie kiedy zastosowana jest paginacja

W skrócie - po przejściu do nowej podstrony (w paginacji) traci wyniki wyszukiwania i pojawia się błąd że nie odnaleziono podanej zmiennej (w tym przypadku $search).
Nie jestem specem od PHP więc przejrzałem kilkanaście poradników z użyciem $_SESSION jednak nie mogłem doprowadzić do cofnięcia wyszukiwanych wyników, tak aby lista pokazywała wszystko.
Powoli się gubię stąd pomysł na założenie nowego tematu.
Podgląd kodu:
CODE
<main>
<div id="results">
<form action="#" method="GET">
<input type="search" name="search">
<input type="submit" name="submit" value="Szukaj">
</form>
<table id="headlines">
<tr>
<th>RMA</th><th>Sklep</th><th>Rodzaj naprawy</th><th>Czas</th><th>Imię</th><th>Nazwisko</th><th>Nazwa produktu</th><th>Status</th><th>Pracownik</th><th>Szczegóły</th>
</tr>
</table>
<br>
<table>
<?php
// ŁĄCZENIE Z BAZĄ DANYCH //
include_once 'db.php';
// UZYSKANIE BIEŻĄCEGO NUMERU STRONY //
if (isset($_GET['page']) && $_GET['page']!="") {
$page = $_GET['page'];
} else {
$page = 1;
}
// CAŁKOWITA LICZBA REKORDÓW NA STRONIE //
$total_records_per_page = 10;
// USTAWIENIE WARTOŚCI OFFSET I INNYCH ZMIENNYCH //
$offset = ($page-1) * $total_records_per_page;
$previous_page = $page - 1;
$next_page = $page + 1;
$adjacents = "2";
// CAŁKOWITA LICZBA STRON DO PODZIAŁU //
$search = $_GET['search'];
$result_count = mysqli_query($conn,"SELECT COUNT(*) As total_records FROM `8ofert` WHERE shop LIKE '%$search%'");
$total_records = mysqli_fetch_array($result_count);
$total_records = $total_records['total_records'];
$number_of_page = ceil($total_records / $total_records_per_page);
$second_last = $number_of_page - 1; // total pages minus 1
// POBIERANIE OGRANICZONEJ LICZNY STRON //
$result = mysqli_query($conn, "SELECT * FROM `naprawy` WHERE shop LIKE '%$search%' LIMIT $offset, $total_records_per_page");
// PĘTLA PO REKORDACH Z BAZY DANYCH //
while ($row = mysqli_fetch_array($result)) {
echo '<tr>';
echo '<td class="rma">RMA/'.$row['ID'].'/'.date('Y').'</td>';
echo '<td class="shop">';
// WYŚWIETLANIE INFORMACJI O WYBRANYM SKLEPIE //
if ($row['shop']=="nowy") {
echo '<span class="ofert">'.$row['shop'].'</span>';
}
else {
echo $row['shop'];
};
echo '</td>';
echo '<td>'.$row['warranty_form'].'</td>';
echo '<td>';
include 'timer.php';
echo '</td>';
echo '<td>'.$row['name_text'].'</td>';
echo '<td>'.$row['surname_text'].'</td>';
echo '<td>'.$row['product_name'].'</td>';
echo '<td>'.$row['repair_status'].'</td>';
echo '<td>'.$row['serviceman'].'</td>';
echo '<td><a href="details.php?ID='.$row['ID'].'"><button id="details">Szczegóły</button></a></td>';
echo '</tr>';
}
mysqli_close($conn);
echo '</table>';
?>
</div>
<div class="center">
<div class="pagination">
<?php if($page <= 1)?>
<a <?php if($page > 1) {
echo "href='?page=$previous_page'";
}
?>><</a>
</li>
<?php
if ($number_of_page <= 10) {
for ($counter = 1; $counter <= $number_of_page; $counter++){
if ($counter == $page) {
echo "<a class='active'>$counter</a>";
}
else {
echo "<a href='?page=$counter'>$counter</a>";
}
}
}
elseif ($number_of_page > 10) {
if($page <= 4) {
for ($counter = 1; $counter < 8; $counter++) {
if ($counter == $page) {
echo "<a class='active'>$counter</a>";
}
else {
echo "<a href='?page=$counter'>$counter</a>";
}
}
echo "<a>...</a>";
echo "<a href='?page=$second_last'>$second_last</a>";
echo "<a href='?page=$number_of_page'>$number_of_page</a>";
}
elseif($page > 4 && $page < $number_of_page - 4) {
echo "<a href='?page=1'>1</a>";
echo "<a href='?page=2'>2</a>";
echo "<a>...</a>";
for ($counter = $page - $adjacents;
$counter <= $page + $adjacents;
$counter++)
{
if ($counter == $page) {
echo "<a class='active'>$counter</a>";
}
else {
echo "<a href='?page=$counter'>$counter</a>";
}
}
echo "<a>...</a>";
echo "<a href='?page=$second_last'>$second_last</a>";
echo "<a href='?page=$number_of_page'>$number_of_page</a>";
}
else {
echo "<a href='?page=1'>1</a>";
echo "<a href='?page=2'>2</a>";
echo "<a>...</a>";
for ($counter = $number_of_page - 6;
$counter <= $number_of_page;
$counter++)
{
if ($counter == $page) {
echo "<a class='active'>$counter</a>";
}
else {
echo "<a href='?page=$counter'>$counter</a>";
}
}
}
}
?>
<?php if($page >= $number_of_page) {} ?>
<a <?php if($page < $number_of_page) {
echo "href='?page=$next_page'";
} ?>>></a>
</div>
</div>
</main>
Z góry bardzo dziękuję za wszystkie sugestie.