Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Mysql]Sortowanie filtracja Stronicowanie
Forum PHP.pl > Forum > Przedszkole
stanisław
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 :/
Pyton_000
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;
stanisław
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
Pyton_000
co nie działa? U mnie działa...
stanisław
dalem asc i desc tabla stoi :/
Pyton_000
Masz bład w linii 56, 66, 76 i może jeszcze którejś ale nie wiem nie widzę kodu...
stanisław
  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
KsaR
* 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())";
stanisław
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
Pyton_000
A co to do jasnej .... ma wspólnego ze stronicowaniem ?
stanisław
fakt, temat rozwinął sie nie co dalej - przepraszam....
poradziłem sobie juz z tymi błędnymi danymi smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.