Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Mysql]Sortowanie filtracja Stronicowanie
stanisław
post
Post #1





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (0%)
-----


Witajcie smile.gif

mam taki problem czytajac po stronach www udało mi sie pozytywnie uzyskać zawartość tabeli w php z takiego kodu

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
  2. <html>
  3. <head>
  4. <title>Lista wygenerowanych kodów</title>
  5. <meta http-equiv=content-type content="text/html; charset=iso-8859-2">
  6. <meta http-equiv="Content-Language" content="pl">
  7. </head>
  8.  
  9. <body>
  10. <?php
  11.  
  12. ////////////////////////////////////////////////////////////
  13. //Przykład kodu wyświetlającego dane z bazy mysql (tabeli newsletter z
  14. //osobami zapisanymi na listę dystrybucyjną)
  15. //Wymagania
  16. // 1. Zalozona baza mysql na serwerze
  17. // 2. Tabela newsletter w bazie mysql z polami imie, nazwisko, mail
  18. ////////////////////////////////////////////////////////////
  19.  
  20. ////////////////////////////////////////////////////////////
  21. //Definicje zmiennych
  22.  
  23. //adres ip serwera mysql który zawiera bazę danych i tabele z osobami
  24. //zapisanymi na listę dystrybucyjna newslettera
  25. $adres_ip_serwera_mysql_z_baza_danych = 'localhost';
  26.  
  27. //nazwa bazy danych z tabelą newsletter zawierającą osoby zapisane na
  28. //listę dystrybucyjna newslettera
  29. $nazwa_bazy_danych = 'kody';
  30.  
  31. //nazwa uzytkownika bazy danych $nazwa_bazy_danych
  32. $login_bazy_danych = 'root';
  33.  
  34. //haslo uzytkownika bazy danych $nazwa_bazy_danych
  35. $haslo_bazy_danych = 'haslo';
  36.  
  37. ////////////////////////////////////////////////////////////
  38. //Kod programu
  39.  
  40. //Ustanawiamy połączenie z serwerem mysql
  41. if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,
  42.  
  43. $login_bazy_danych,$haslo_bazy_danych) ) {
  44. echo 'Nie moge polaczyc sie z baza danych';
  45. exit (0);
  46. }
  47. //Wybieramy baze danych na serwerze mysql ktora zawiera tabele
  48. //newsletter gdzie sa dane osob z listy dystrybucyjnej
  49. if ( !mysql_select_db($nazwa_bazy_danych) ) {
  50. echo 'Blad otwarcia bazy danych';
  51. exit (0);
  52. }
  53.  
  54. //Definiujemy zapytanie pobierające wszystkie wiersze z wszystkimi
  55. //polami z tabeli newsletter SELECT * FROM tabela WHERE data_dodania > DATE(NOW()
  56. $zapytanie = "SELECT * FROM `generator`";
  57. //wykonujemy zdefiniowane zapytanie na bazie mysql
  58. $wynik = mysql_query($zapytanie);
  59.  
  60. //Wyświetlamy w tabeli html dane pobrane
  61. //z tabeli newsletter bazy mysql
  62. //Najpierw definiujemy nagłówek tabeli html
  63. echo "<p>";
  64. echo "<table boder=\"1\"><tr>";
  65. echo "<td bgcolor=\"ffff00\"><strong>Id</strong></td>";
  66. echo "<td bgcolor=\"ffff99\"><strong>KOD</strong></td>";
  67. echo "<td bgcolor=\"ffff00\"><strong>Pracownik</strong></td>";
  68. echo "<td bgcolor=\"ffff99\"><strong>Data</strong></td>";
  69. echo "</tr>";
  70. //Teraz wyświetlamy kolejne wiersze z tabeli newsletter
  71. //Pola tabeli newsletter pobieramy odwołując się do ich
  72. //numerów jak poniżej:
  73. // 0 (UID)
  74. // 1 (Imie)
  75. // 2 (Nazwisko)
  76. // 3 (Mail)
  77. while ( $row = mysql_fetch_row($wynik) ) {
  78. echo "</tr>";
  79. echo "<td bgcolor=\"ffff00\">" . $row[0] . "</td>";
  80. echo "<td bgcolor=\"ffff99\">" . $row[1] . "</td>";
  81. echo "<td bgcolor=\"ffff00\">" . $row[2] . "</td>";
  82. echo "<td bgcolor=\"ffff99\">" . $row[3] . "</td>";
  83. echo "</tr>";
  84. }
  85. echo "</table>";
  86.  
  87.  
  88. //Zamykamy połączenie z bazą danych
  89. if ( !mysql_close() ) {
  90. echo 'Nie moge zakonczyc polaczenia z baza danych';
  91. exit (0);
  92. }
  93.  
  94. ?>
  95.  
  96.  
  97. //
  98.  
  99.  
  100. </body>
  101. </html>



mniejsze o bałagan chwilowy w kodzie - czy moze mi ktoś pomóc rozpisać to tak żeby stronicowało wyniki np po 50 na stronę, sortować i żeby było można filtrować np po dacie (zapisywana do bazy zapyytaniem date("Y-m-d H:i:s"); )

kuleje z tym :/
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


a z czym masz problem ?
W GET przekazujesz parametry sortujące np. ?code=asc
i już sortowanie masz załatwione.

Co do stronicowania to też bardzo prosto osiągnąć.
Ustalasz sobie limit per strona np. 50.
W zapytaniu pobierasz sobie: nr_strony * limit + 1;
I jeśli ilość > limit to pokazujesz nast. link. jak nie to nie.
W GET przekazujesz sobie strona=xxx;
Jeśli brak to ustalasz że strona = 1;
Go to the top of the page
+Quote Post
stanisław
post
Post #3





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (0%)
-----


no chyba z tym ze to nie działa... a bardziej wyobrażałem to sobie w kodzie php wink.gif przyciski te sprawy biggrin.gif jakiś kalendarz
Go to the top of the page
+Quote Post
Pyton_000
post
Post #4





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


co nie działa? U mnie działa...
Go to the top of the page
+Quote Post
stanisław
post
Post #5





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (0%)
-----


dalem asc i desc tabla stoi :/
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Masz bład w linii 56, 66, 76 i może jeszcze którejś ale nie wiem nie widzę kodu...
Go to the top of the page
+Quote Post
stanisław
post
Post #7





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (0%)
-----


  1. $kod = $_GET["kod"];
  2. $ozdoba= $_GET["ozdoba"];
  3. $rozmiar= $_GET["rozmiar"];
  4. $kolor= $_GET["kolor"];
  5. $tworzywo= $_GET["tworzywo"];
  6. $rodzaj= $_GET["rodzaj"];
  7. $opis= $_GET["opis"];
  8. $ilosc= $_GET["ilosc"];
  9. $textdate= $_GET["textdate1"];
  10. $p= $_GET["p"];
  11. $dp= $_GET["dp"];
  12. $time = date("Y-m-d H:i:s");
  13. $sql = "INSERT INTO `generator`(`id`, `kod`, `ozdoba`, `rozmiar`, `kolor`, `tworzywo`, `rodzaj`, `opis`, `ilosc`, `seria`, `pracownik1`, `pracownik2`, `data`)
  14. VALUES ('','$kod','$ozdoba','$rozmiar','$kolor','$tworzywo','$rodzaj','$opis','$ilosc','$textdate','$p','$dp','$time')";
  15. $result = @mysql_query($sql, $connection) or die ("wykonanie zapytania nie powiodlo sie");


może mi ktoś poradzić co spierdoliłem że nie chce doać zapytania z takiego urla

pobierz_kod.php?kod=a&ozdoba=b&rozmiar=c&kolor=d&tworzywo=e&rodzaj=f&opis=g&ilosc=h&textdate1=i&p=j&dp=k
Go to the top of the page
+Quote Post
KsaR
post
Post #8





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

Ostrzeżenie: (0%)
-----


* Używaj isset
* Poczytaj o SQL Injection,
* Dobrze jakbys uzywal mysqli lub pdo wraz z prepared stataments.
* Jesli kolumna jest typu int nie uzywaj cudzyslowia w ogole.
* $time = date("Y-m-d H:i:s"); w mysql masz funkcje NOW()
* Jesli id ma auto increment to nie dodawaj go w zapytaniu.

$sql = "INSERT INTO `generator` ( `kod`, `ozdoba`, `rozmiar`, `kolor`, `tworzywo`, `rodzaj`, `opis`, `ilosc`, `seria`, `pracownik1`, `pracownik2`, `data`)
VALUES ('$kod','$ozdoba','$rozmiar','$kolor','$tworzywo','$rodzaj','$opis','$ilosc','$textdate','$p','$dp',NOW())";


--------------------
Go to the top of the page
+Quote Post
stanisław
post
Post #9





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (0%)
-----


dzięki za podpowiedź. zapytanie sie udało jednak otrzymałem takie wpisy

  1. Id KOD Ozdoba Rozmiar Kolor Tworzywo Rodzaj Opis Ilo�� Seria Pracownik1 Pracownik2 Data
  2. 1 a b c b c b c b c b c b


z zapytania

?kod=a&ozdoba=b&rozmiar=c&kolor=d&tworzywo=e&rodzaj=f&opis=g&ilosc=h&textdate1=i&p=j&dp=k

Ten post edytował stanisław 10.12.2015, 09:16:32
Go to the top of the page
+Quote Post
Pyton_000
post
Post #10





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


A co to do jasnej .... ma wspólnego ze stronicowaniem ?
Go to the top of the page
+Quote Post
stanisław
post
Post #11





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 18.10.2008

Ostrzeżenie: (0%)
-----


fakt, temat rozwinął sie nie co dalej - przepraszam....
poradziłem sobie juz z tymi błędnymi danymi smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 20:19