Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Pomoc w sesji
Forum PHP.pl > Forum > Przedszkole
ka06
Wyskakuje mi blad po przejsciu na kolejna strone ze nie mozna odnalesc wartosci $metoda, $wyrazenie . wartosci $metoda, $wyrazenie sa przesylane z formularza metoda $_POST , pobieram zapytanie z bazy i wyswietlam np po 10 wynikow na stronie , chce przejsc na strone numer 2 i wyskakuje komunikat który zapisałem powyzej smile.gif
Prosze po pomoc , myslę ze jest duzo osob które posiadaja wieksza wiedzę i mi pomoga
  1. <?php
  2. $metoda = $_POST['metoda'];
  3. $wyrazenie = $_POST['wyrazenie'];
  4. $db_conx = mysqli_connect("localhost", "root", "", "internet");
  5. $sql = "SELECT COUNT(*) FROM czesci WHERE ".$metoda." like '%".$wyrazenie."%'";
  6. $query = mysqli_query($db_conx, $sql);
  7. $row = mysqli_fetch_row($query);
  8. $rows = $row[0];
  9. // ilosc wynikow na stronie
  10. $page_rows = 15;
  11. $last = ceil($rows/$page_rows);
  12. if($last < 1){
  13. $last = 1;
  14. }
  15. $pagenum = 1;
  16. if(isset($_GET['pn'])){
  17. $pagenum = preg_replace('#[^0-9]#', '', $_GET['pn']);
  18. }
  19. if ($pagenum < 1) {
  20. $pagenum = 1;
  21. } else if ($pagenum > $last) {
  22. $pagenum = $last;
  23. }
  24. $limit = 'LIMIT ' .($pagenum - 1) * $page_rows .',' .$page_rows;
  25. $sql1 = "SELECT * FROM czesci where ".$metoda." like '%".$wyrazenie."%' order by id $limit";
  26. $query = mysqli_query($db_conx, $sql);
  27. $textline1 = "Czesci (<b>$rows</b>)";
  28. $textline2 = "Strona <b>$pagenum</b> z <b>$last</b>";
  29. $paginationCtrls = '';
  30. if($last != 1){
  31. if ($pagenum > 1) {
  32. $previous = $pagenum - 1;
  33. $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$previous.'">Previous</a> &nbsp; &nbsp; ';
  34. for($i = $pagenum-4; $i < $pagenum; $i++){
  35. if($i > 0){
  36. $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; ';
  37. }
  38. }
  39. }
  40. $paginationCtrls .= ''.$pagenum.' &nbsp; ';
  41. for($i = $pagenum+1; $i <= $last; $i++){
  42. $paginationCtrls .= '<a href="'.$_SERVER['PHP_SELF'].'?pn='.$i.'">'.$i.'</a> &nbsp; ';
  43. if($i >= $pagenum+4){
  44. break;
  45. }
  46. }
  47. if ($pagenum != $last) {
  48. $next = $pagenum + 1;
  49. $paginationCtrls .= ' &nbsp; &nbsp; <a href="'.$_SERVER['PHP_SELF'].'?pn='.$next.'">Next</a> ';
  50. }
  51. }
  52. $result1 = mysqli_query($db_conx,$sql1);
  53. while($row = mysqli_fetch_assoc($result1)){
  54. $id = $row["id"];
  55. echo "<table border=0>";
  56. echo '<tr align="left" valign="top">';
  57. echo '<td><img src="'.$row['zdjecia'].'" alt="" height="150 px" width="180 px" /><br><br></td>';
  58. echo '<td width="300px"><b style="color:red;" >Marka: </b>'.$row['marka'].'</b><br><b style="color:red;" >Model: </b>'.$row['model'].'</b><br><b style="color:red;" >Silnik: </b>'.$row['silnik'].'</b><br><b style="color:red;" >Nadwozie: </b>'.$row['nadwozie'].'</b><br><b style="color:red;" >Kod: </b>'.$row['id_czesci'].'</b></td>';
  59. echo '<td width="600px"><b style="color:red;" >Nazwa rzeczy: </b>'.$row['nazwa_rzeczy'].'</b><br><br><b style="color:green;" >Cenna: </b>'.$row['cena'].'</b></td>';
  60. echo "</tr>";
  61. echo "</table>";
  62.  
  63. }
  64.  
  65. ?>
  66. <!DOCTYPE html>
  67. <html>
  68. <head>
  69. <style type="text/css">
  70. body{ font-family:"Trebuchet MS", Arial, Helvetica, sans-serif;}
  71. div#pagination_controls{font-size:21px;}
  72. div#pagination_controls > a{ color:#06F; }
  73. div#pagination_controls > a:visited{ color:#06F; }
  74. </style>
  75. </head>
  76. <body>
  77. <div>
  78. <center>
  79. <h2><?php echo $textline1; ?> na stronie</h2>
  80. <p><?php echo $textline2; ?></p>
  81. <div id="pagination_controls"><?php echo $paginationCtrls; ?></div>
  82. </center>
  83. </div>
  84. </body>
  85. </html>
prz3kus
Kod wklej w tagi, napisz jaki dostajesz błąd. Z takim podejściem potrzebujesz kreta do rycia kodu i wróżki do rozwiązania problemu aarambo.gif
Neutral
x0.php:
  1. <form method="post" action="dlapkt.php">
  2. <input type="text" name="metoda"/>
  3. <input type="text" name="wyrazenie"/>
  4. <input type="submit" name="submit" />
  5. </form>


dlapkt.php:
  1. <?php
  2. if(!isset($_POST['metoda']) && !isset($_POST['wyrazenie'])){
  3. null;
  4. }else{
  5. $_SESSION['metoda'] = $_POST['metoda'] ;
  6. $_SESSION['wyrazenie'] = $_POST['wyrazenie'];
  7. }
  8. // (...)


W dalszym kodzie pozamieniaj wszystkie $_POST['metoda'] na $_SESSION['metoda'] i analogicznie postąp ze zmienną $_POST['wyrazenie'].
ka06
Dzieki wielkie dziala smile.gif Bardzo fanie ze mi pomogłes
Neutral
Cytat
Witam , dziekuje wczoraj za pomoc w roziwazaniu problemu , a mam jeszcze pytanie , gdy ktos pierwszy raz odwiedza strone to nie wyswietla wszystkich rekordów z bazy . Domyslam sie ze musze pewno usunac sesje , znaczy sprawdzic czy jest aktywna jezeli nie wyswietl wszystkie rzeczy . W którym miejscu mam uzupelnic niszczenie sesji ?


  1. <?php
  2. // ...
  3. // $db_conx = ...
  4. if(!isset($_SESSION['metoda']) || !isset($_SESSION['wyrazenie'])){
  5. null;
  6. }else {
  7. // $sql = ...
  8. // ...
  9. }
  10. ?>


  1. <body>
  2. <div>
  3.  
  4. <?php
  5. if(!isset($_SESSION['metoda']) || !isset($_SESSION['wyrazenie'])){
  6. echo "SESSION DOES NOT EXIST";
  7. }else {
  8. ?>
  9.  
  10. <center>
  11. <h2><?= $textline1 ?></h2>
  12. <p><?= $textline2 ?></p>
  13. <p><?= $list ?></p>
  14. <div id="pagination_controls"><?= $paginationCtrls ?></div>
  15. </center>
  16.  
  17. </div>
  18.  
  19. <?php } ?>
  20.  
  21. </body>
  22. </html>
  23.  


Mniej więcej tak to powinno wyglądać, jeśli nie chciałbyś mieć takiego dużego warunku to kombinuj, ale schemat jest mniej więcej taki.

Sesje możesz zniszczyć dodając pod </html> to <?php session_destroy(); ?>
http://php.net/manual/en/function.session-destroy.php
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.