Skocz do zawartości


Zdjęcie

[PHP] Porcjowanie danych


  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 Speed222

Speed222

    Początkujący

  • 78 postów

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:

<?

  $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>";
				
?>


  • 0

#2 Ziele

Ziele

    Biblioteka Zielińskiego

  • 1 812 postów

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ł

  • 0

#3 Ugol.pl

Ugol.pl

    Początkujący

  • 26 postów

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

  • 0




Użytkownicy przeglądający ten temat: 1

0 użytkowników, 1 gości, 0 anonimowych