Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie widać zmiennej $_POST po przeładowaniu skryptu
Forum PHP.pl > Forum > PHP
yogitubadzin
Mam skrypt id_grupy, który pobieram metodą POST formularzem i np tworzę zmienna $id_grupy = $_POST['id_grupy']; Mam skrypt który wyciąga mi z bazy
  1. SELECT pracownicy.nazwisko, pracownicy.imie, pracownicy.email, pracow_w_kursie.id_grupy FROM pracow_w_kursie, pracownicy WHERE pracow_w_kursie.id_pracownika=pracownicy.id_pracownika AND pracow_w_kursie.id_grupy='$id_grupy'

Mam kod który segreguje mi dane z bazy, np, nazwisko czy imię. Jak dam segregacje to kod się przeładowuje i zmienna $id_grupy znika i nie wyświetla mi wyników z bazy. Jak zrobić, żeby w jednym skrypcie php przeładowywać skrypt i żeby pamiętał mi $id_grupy, próbowałem coś z zapisem pliku ale nie działało.


  1. <?php
  2. include ('./includes/header.html');
  3. require_once ('fns/conf.php');
  4. require_once ('fns/db_fns.php');
  5. if(isset($_SESSION['id_admin'])) {
  6.  
  7.  
  8. $id_grupy = $_POST['id_grupy'];
  9. print_r($id_grupy);
  10. // Liczba rekordów wyświetlanych na stronie:
  11. $display = 7;
  12.  
  13. // Wyznacz liczbę stron.
  14. if (isset($_GET['np'])) { // Liczba stron już ustalona.
  15. $num_pages = $_GET['np'];
  16. } else { // Trzeba ją dopiero określić.
  17.  
  18. // Zlicz rekordy
  19. $query = "SELECT COUNT(*) FROM pracow_w_kursie, pracownicy WHERE pracow_w_kursie.id_grupy='$id_grupy' AND pracow_w_kursie.id_pracownika=pracownicy.id_pracownika ";
  20. $result = @mysql_query ($query);
  21. $row = mysql_fetch_array ($result, MYSQL_NUM);
  22. $num_records = $row[0];
  23.  
  24. // Wyznacz liczbę stron.
  25. if ($num_records > $display) { // Więcej niż 1 strona.
  26. $num_pages = ceil ($num_records/$display);
  27. } else {
  28. $num_pages = 1;
  29. }
  30.  
  31. } // Koniec instrukcji warunkowej dla zmiennej np.
  32.  
  33.  
  34. // Określ punkt początkowy wyników w bazie.
  35. if (isset($_GET['s'])) {
  36. $start = $_GET['s'];
  37. } else {
  38. $start = 0;
  39. }
  40.  
  41. // Domyślne łącza kolumn.
  42. $link1 = "{$_SERVER['PHP_SELF']}?sort=naz";
  43. $link2 = "{$_SERVER['PHP_SELF']}?sort=imi";
  44. $link3 = "{$_SERVER['PHP_SELF']}?sort=ema";
  45. // Określ sposób sortowania.
  46. if (isset($_GET['sort'])) {
  47.  
  48. // Użyj istniejący sposób sortowania.
  49. switch ($_GET['sort']) {
  50. case 'naz':
  51. $order_by = 'nazwisko ASC';
  52. $link1 = "{$_SERVER['PHP_SELF']}?sort=naz_";
  53. break;
  54. case 'naz_':
  55. $order_by = 'nazwisko DESC';
  56. $link1 = "{$_SERVER['PHP_SELF']}?sort=naz";
  57. break;
  58. case 'imi':
  59. $order_by = 'imie ASC';
  60. $link2 = "{$_SERVER['PHP_SELF']}?sort=imi_";
  61. break;
  62. case 'imi_':
  63. $order_by = 'imie DESC';
  64. $link2 = "{$_SERVER['PHP_SELF']}?sort=imi";
  65. break;
  66. case 'ema':
  67. $order_by = 'email ASC';
  68. $link3 = "{$_SERVER['PHP_SELF']}?sort=ema_";
  69. break;
  70. case 'ema_':
  71. $order_by = 'email DESC';
  72. $link3 = "{$_SERVER['PHP_SELF']}?sort=ema";
  73. break;
  74. default:
  75. $order_by = 'nazwisko ASC';
  76. break;
  77. }
  78.  
  79. // $sort zostanie dołączona do łącz poszczególnych stron.
  80. $sort = $_GET['sort'];
  81.  
  82. } else { // Użyj domyślny sposób sortowania.
  83. $order_by = 'nazwisko ASC';
  84. $sort = 'naz';
  85. }
  86.  
  87. $query2 = "SELECT pracownicy.nazwisko, pracownicy.imie, pracownicy.email, pracow_w_kursie.id_grupy FROM pracow_w_kursie, pracownicy WHERE pracow_w_kursie.id_pracownika=pracownicy.id_pracownika AND pracow_w_kursie.id_grupy='$id_grupy' ORDER BY $order_by LIMIT $start, $display ";
  88.  
  89. $result2 = @mysql_query ($query2); // Wykonaj zapytanie.
  90.  
  91.  
  92.  
  93. // Nagłówek tabeli.
  94. echo '<table align="center" cellspacing="0" cellpadding="5">
  95. <tr>
  96. <td align="left"><b><a href="' . $link1 . '">Nazwisko</a></b></td>
  97. <td align="left"><b><a href="' . $link2 . '">Imię</a></b></td>
  98. <td align="left"><b><a href="' . $link3 . '">Adres email</a></b></td>
  99. </tr>
  100. ';
  101.  
  102.  
  103. // Pobierz i wyświetl wszystkie rekordy.
  104. $bg = '#eeeeee'; // Określ kolor tła.
  105. while ($row = mysql_fetch_array($result2, MYSQL_ASSOC)) {
  106.  
  107. $bg = ($bg=='#eeeeee' ? '#ffffff' : '#eeeeee'); // Zmień kolor tła.
  108. echo '<tr bgcolor="' . $bg . '">
  109. <td align="left">' . $row['nazwisko'] . '</td>
  110. <td align="left">' . $row['imie'] . '</td>
  111. <td align="left">' . $row['email'] . '</td>
  112. </tr>
  113. ';
  114. }
  115. echo '</table>';
  116.  
  117.  
  118. // Utwórz łącza do innych stron, jeśli to konieczne.
  119. if ($num_pages > 1) {
  120.  
  121. echo '<br /><p>';
  122. // Określ bieżącą stronę.
  123. $current_page = ($start/$display) + 1;
  124.  
  125. // Jeśli to nie jest pierwsza strona, utwórz łącze do poprzedniej.
  126. if ($current_page != 1) {
  127. echo '<a href="pokaz_pracownicy_grupa_admin.php?s=' . ($start - $display) . '&np=' . $num_pages . '&sort=' . $sort .'">Poprzednia</a> ';
  128. }
  129.  
  130. // Łącza do pozostałych stron.
  131. for ($i = 1; $i <= $num_pages; $i++) {
  132. if ($i != $current_page) {
  133. echo '<a href="pokaz_pracownicy_grupa_admin.php?s=' . (($display * ($i - 1))) . '&np=' . $num_pages . '&sort=' . $sort .'">' . $i . '</a> ';
  134. } else {
  135. echo $i . ' ';
  136. }
  137. }
  138.  
  139. // Jeśli to nie jest ostatnia strona, utwórz łącze do następnej.
  140. if ($current_page != $num_pages) {
  141. echo '<a href="pokaz_pracownicy_grupa_admin.php?s=' . ($start + $display) . '&np=' . $num_pages . '&sort=' . $sort .'">Następna</a>';
  142. }
  143.  
  144. echo '</p>';
  145.  
  146. } // Koniec sekcji łącz.
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155. mysql_free_result ($result2); // Zwolnij zasoby.
  156. }else{
  157.  
  158. echo 'Zaloguj się!';
  159. }
  160. mysql_close(); // Zamknij połączenie z bazą danych.
  161. include ('./includes/footer.html');
  162. ?>
  163.  
Qu3ster
Zamiast $_POST użyj $_GET. Czyli zmień atrybut mode formularza z POST na GET. I potem do linków dołącz &id_grupy=$id_grupy
yogitubadzin
Składnia &id_grupy=$id_grupy, wywala błąd, przekazuje postem czy getem, a jak mam odebrać,
zrobiłem tak:
$id_grupy = &$_GET['id_grupy'];
lub
$id_grupy = &$_POST['id_grupy'];
nie działa:(
dokch
$_SESSION[id_grupy'] = $id_grupy;
yogitubadzin
Tak nie działa, ponieważ zapamiętuje tylko tą pierwszą zmienną sesyjną, jako admin przejde na inny link, wracam i patrzę a tu ten sam id, ktoś ma jakieś inne pomysły?
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.