<? $szukaj = strip_tags(htmlspecialchars( $_POST['szukaj'])); $kat = strip_tags(htmlspecialchars( $_POST['kat'])); $wedlug = strip_tags(htmlspecialchars( $_POST['wedlug'])); $con = mysql_connect("localhost","speed","polo"); $db = mysql_select_db("druga"); $sql = "SELECT * FROM produkty WHERE akceptacja='0' and kategoria='$kat' and $wedlug LIKE '%$szukaj%' ORDER BY tytul"; $wynik = mysql_query($sql, $con); echo" <table border=5 width=100%> <tr><td width=100px>Autor</td><td width=100px>Tytuł </td><td width=80px>Kategoria</td><td> Opis</td><td width=150px> Zdjęcie</td></tr>"; while($tab=mysql_fetch_array($wynik)) { echo"<tr><td>"; echo $tab[autor]; echo"</td><td>"; echo $tab[tytul]; echo "</td><td>"; echo $tab[kategoria]; echo"</td><td>"; echo $tab[opis]; echo"</td><td>"; echo '<img src='.'./pliki/'.$tab[zdjecie].'width=100px height=100px>'; echo" </td></tr>"; } echo"</table>"; ?>

[PHP] Porcjowanie danych
Rozpoczęty przez
Speed222
, 26 07 2008 20:17
2 odpowiedzi w tym temacie
#1
Napisano 26 07 2008 - 20:17
Witam! Chciałbym zrobić porcjowania danych ale nie bardzo wiem jak to zrobić. Szukałem po necie znalazłem prę interesujących skryptów ale nie do końca kminie jak to jest zrobione, dlatego jeśli ktoś wie jak zrobić porcjowanie danych takie iż masz " <poprzednia 1 2 3 4 5 ... następna>" coś takiego to prosiłbym o napisanie i wytłumaczenie ! tylko nie jakieś skomplikowane i długie skrypty! W gruncie rzeczy porcjowanie to za pomocą "LIMIT" się robi ale problem tkwi w tych linkach do następnych stron! skrypt który pragnąłbym aby był podzielony na kawałki to:
#2
Napisano 26 07 2008 - 20:27
Jest coś takiego jak znaczniki codebox, w których umieszczamy kod i tagi, których używamy w temacie 
btw. zły dział

btw. zły dział
#3
Napisano 02 09 2008 - 18:25
Niestety taki skrypt nie jest tak prosty i intuicyjny jakby się mogło wydawać.
Proponuję jednak numery kolejnych porcji przesyłać za pomocą $_GET, jeśli nic nie zostanie przekazane to powiedzmy $numer=0; jeśli jednak coś zostanie przekazane to $numer=$_GET['numer'];
w ten sposób otrzymujemy kolejne numery porcji, które rzeczywiście można pobrać poleceniem LIMIT $numer, $ile - czyli numer porcji i ilość rekordów.
Teraz należy wyświetlić odpowiednie linki typu: index.php?numer=1..10 (jako kolejne porcje), a poprzedni i następny to kolejno: index.php?numer=$numer-1; i index.php?numer=$numer+1;
Problemy jakie mogą się pojawić to:
- dobranie ilości wyświetlanych linków do porcji (Google ma ich np 10), bo jeśli tego nie zabezpieczysz i baza znajdzie 300 rekordów, a na stronie limitujesz po 10 to masz jak nic 30 linków obok siebie (zobacz jak się rozjedzie strona przy 200 takich linkach)
- wycentrowanie aktualnej porcji, czyli jeśli masz $numer=8 to po lewej stronie jest 3, 4, 5, 6, 7, a po prawej 9, 10, 11, 12, 13
- dodatkowo jeszcze trzeba sprawdzać czy przekazany argument mieście się w zakresie tego co zwróciła baza, czyli czy ktoś specjalnie nie podał za dużego numeru.
Pozdrawiam
Proponuję jednak numery kolejnych porcji przesyłać za pomocą $_GET, jeśli nic nie zostanie przekazane to powiedzmy $numer=0; jeśli jednak coś zostanie przekazane to $numer=$_GET['numer'];
w ten sposób otrzymujemy kolejne numery porcji, które rzeczywiście można pobrać poleceniem LIMIT $numer, $ile - czyli numer porcji i ilość rekordów.
Teraz należy wyświetlić odpowiednie linki typu: index.php?numer=1..10 (jako kolejne porcje), a poprzedni i następny to kolejno: index.php?numer=$numer-1; i index.php?numer=$numer+1;
Problemy jakie mogą się pojawić to:
- dobranie ilości wyświetlanych linków do porcji (Google ma ich np 10), bo jeśli tego nie zabezpieczysz i baza znajdzie 300 rekordów, a na stronie limitujesz po 10 to masz jak nic 30 linków obok siebie (zobacz jak się rozjedzie strona przy 200 takich linkach)
- wycentrowanie aktualnej porcji, czyli jeśli masz $numer=8 to po lewej stronie jest 3, 4, 5, 6, 7, a po prawej 9, 10, 11, 12, 13
- dodatkowo jeszcze trzeba sprawdzać czy przekazany argument mieście się w zakresie tego co zwróciła baza, czyli czy ktoś specjalnie nie podał za dużego numeru.
Pozdrawiam
Użytkownicy przeglądający ten temat: 1
0 użytkowników, 1 gości, 0 anonimowych