Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Piszę stronę do codziennego użytku i mam problem z odświeżeniem strony
arstherapia
post 23.08.2015, 12:20:10
Post #1





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Witajcie,

piszę sobie taką prostą stronkę czytającą notatki z bazy danych + podstawowy CRUD. Bardzo ułatwi mi to życie.
Ta mini appka prawie działa - ale mam problem - po dodaniu lub edycji notatki do bazy muszę ręcznie odświeżać stronę, żeby była widoczna.
Błąd - headers already sent... A ja chciałbym, żeby pokazywała się ta sama strona, tylko zaktualizowana sad.gif

W urlu są dwie zmienne pochodzące z linka ze strony głównej - nazwa tabeli w bazie i typ operacji crud + pole id tej operacji.

Pomóżcie proszę. Kod jeszcze w rozsypce:

  1. <?php
  2.  
  3. include('partials/header.php');
  4.  
  5. define('_HOST_NAME','localhost');
  6. define('_DATABASE_NAME','pacjenci');
  7. define('_DATABASE_USER_NAME','root');
  8. define('_DATABASE_PASSWORD','hobbiton');
  9.  
  10. $MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
  11.  
  12. if($MySQLiconn->connect_errno)
  13. {
  14. die("ERROR : -> ".$MySQLiconn->connect_error);
  15. }
  16.  
  17. ?>
  18.  
  19. <div class="col-lg-10">
  20.  
  21. <?php $table=$_GET['table'];?>
  22.  
  23. <hr><h3><?php echo $table?></h3><br>
  24.  
  25. <table class="table table-bordered">
  26.  
  27. <?php $res = $MySQLiconn->query("SELECT * FROM $table");
  28. while($row=$res->fetch_array())
  29. {
  30. ?>
  31.  
  32. <tr>
  33. <td class="col-md-1"><?php echo $row['id']; ?></td>
  34. <td class="col-md-2"><?php echo $row['data']; ?></td>
  35. <td class="col-md-7"><?php echo $row['sesja']; ?></td>
  36. <td class="col-md-1"><a href="?edit=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Edytuj</a></td>
  37.  
  38. <td class="col-md-1"><a href="?del=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Usuń</a></td>
  39. </tr>
  40. <?php
  41. }
  42. ?>
  43. </table>
  44.  
  45. <hr><h3>Dodaj nową sesję:</h3>
  46.  
  47. <div id="form">
  48. <form method="post">
  49.  
  50. <div class="form-group">
  51. <label for="data"></label>
  52. <input class="form-control" type="date" name="data" placeholder="data" value="<?php if(isset($_GET['edit'])) echo $getROW['data']; ?>">
  53. </div>
  54.  
  55. <div class="form-group">
  56. <label for="sesja"></label>
  57. <textarea class="form-control" rows="8" type="text" name="sesja" placeholder="sesja" value="<?php if(isset($_GET['edit'])) echo $getROW['sesja']; ?>"></textarea>
  58. </div>
  59.  
  60. <?php
  61. if(isset($_GET['edit']))
  62. {
  63. ?>
  64. <button class="btn btn-default" type="submit" name="update">Uaktualnij</button>
  65. <?php
  66. }
  67. else
  68. {
  69. ?>
  70. <button class="btn btn-default" type="submit" name="save">Zapisz</button>
  71. <?php
  72. }
  73. ?>
  74. </td>
  75. </tr>
  76. </table>
  77. </form>
  78.  
  79. </div>
  80.  
  81. </div>
  82.  
  83. <?php
  84.  
  85. include_once 'db.php';
  86.  
  87. /* code for data insert */
  88.  
  89. if(isset($_POST['save']))
  90. {
  91.  
  92. $data = $MySQLiconn->real_escape_string($_POST['data']);
  93. $sesja = $MySQLiconn->real_escape_string($_POST['sesja']);
  94.  
  95. $SQL = $MySQLiconn->query("INSERT INTO $table(data,sesja) VALUES('$data','$sesja')");
  96.  
  97. if(!$SQL)
  98. {
  99. echo $MySQLiconn->error;
  100. }
  101. }
  102. /* code for data insert */
  103.  
  104.  
  105. /* code for data delete */
  106.  
  107.  
  108. if(isset($_GET['del']))
  109.  
  110. {
  111. $SQL = $MySQLiconn->query("DELETE FROM $table WHERE id=".$_GET['del']);
  112.  
  113. ?>
  114. <script language="javascript" type="text/javascript">
  115. alert('Dziekujemy!');
  116.  
  117. </script><?php
  118.  
  119. }
  120.  
  121. /* code for data delete */
  122.  
  123.  
  124.  
  125. /* code for data update */
  126. if(isset($_GET['edit']))
  127. {
  128. $SQL = $MySQLiconn->query("SELECT * FROM $table WHERE id=".$_GET['edit']);
  129. $getROW = $SQL->fetch_array();
  130. }
  131.  
  132. if(isset($_POST['update']))
  133. {
  134. $SQL = $MySQLiconn->query("UPDATE $table SET data='".$_POST['data']."', sesja='".$_POST['sesja']."' WHERE id=".$_GET['edit']);
  135.  
  136.  
  137. }
  138. /* code for data update */
  139.  
  140. ?>
  141.  
  142. <?php
  143.  
  144. include('partials/footer.php');
  145.  
  146. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
nospor
post 23.08.2015, 12:25:23
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Najpierw wyswietlasz rekordy a dopiero potem edytujesz i wielce zdziwiony ze wyswietlone rekordy nie zawieraja zmian... Toz to logika na poziomie zlobka jest. Warto abys sam zastosowal sie do swojego avatara wink.gif
Najpierw masz edytowac/kasowac/dodawac a dopiero potem wyswietlac - wowczas bedziesz widzial zmiany od razu.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arstherapia
post 23.08.2015, 12:39:18
Post #3





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(nospor @ 23.08.2015, 13:25:23 ) *
Najpierw wyswietlasz rekordy a dopiero potem edytujesz i wielce zdziwiony ze wyswietlone rekordy nie zawieraja zmian... Toz to logika na poziomie zlobka jest. Warto abys sam zastosowal sie do swojego avatara wink.gif
Najpierw masz edytowac/kasowac/dodawac a dopiero potem wyswietlac - wowczas bedziesz widzial zmiany od razu.


Dopiero się uczę, próbowałem też tak, ale teraz to już w ogóle nie działa...

  1. <?php
  2.  
  3. include('partials/header.php');
  4.  
  5. define('_HOST_NAME','localhost');
  6. define('_DATABASE_NAME','pacjenci');
  7. define('_DATABASE_USER_NAME','root');
  8. define('_DATABASE_PASSWORD','hobbiton');
  9.  
  10. $MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
  11.  
  12. if($MySQLiconn->connect_errno)
  13. {
  14. die("ERROR : -> ".$MySQLiconn->connect_error);
  15. }
  16.  
  17. ?>
  18.  
  19. <?php
  20.  
  21.  
  22.  
  23. /* code for data insert */
  24.  
  25. if(isset($_POST['save']))
  26. {
  27.  
  28. $data = $MySQLiconn->real_escape_string($_POST['data']);
  29. $sesja = $MySQLiconn->real_escape_string($_POST['sesja']);
  30.  
  31. $SQL = $MySQLiconn->query("INSERT INTO $table(data,sesja) VALUES('$data','$sesja')");
  32.  
  33. if(!$SQL)
  34. {
  35. echo $MySQLiconn->error;
  36. }
  37. }
  38. /* code for data insert */
  39.  
  40.  
  41. /* code for data delete */
  42.  
  43.  
  44. if(isset($_GET['del']))
  45.  
  46. {
  47. $SQL = $MySQLiconn->query("DELETE FROM $table WHERE id=".$_GET['del']);
  48.  
  49. ?>
  50. <script language="javascript" type="text/javascript">
  51. alert('Dziekujemy!');
  52.  
  53. </script><?php
  54.  
  55. }
  56.  
  57. /* code for data delete */
  58.  
  59.  
  60.  
  61. /* code for data update */
  62. if(isset($_GET['edit']))
  63. {
  64. $SQL = $MySQLiconn->query("SELECT * FROM $table WHERE id=".$_GET['edit']);
  65. $getROW = $SQL->fetch_array();
  66. }
  67.  
  68. if(isset($_POST['update']))
  69. {
  70. $SQL = $MySQLiconn->query("UPDATE $table SET data='".$_POST['data']."', sesja='".$_POST['sesja']."' WHERE id=".$_GET['edit']);
  71.  
  72.  
  73. }
  74. /* code for data update */
  75.  
  76. ?>
  77.  
  78. <div class="col-lg-10">
  79.  
  80. <?php $table=$_GET['table'];?>
  81.  
  82. <hr><h3><?php echo $table?></h3><br>
  83.  
  84. <table class="table table-bordered">
  85.  
  86. <?php $res = $MySQLiconn->query("SELECT * FROM $table");
  87. while($row=$res->fetch_array())
  88. {
  89. ?>
  90.  
  91. <tr>
  92. <td class="col-md-1"><?php echo $row['id']; ?></td>
  93. <td class="col-md-2"><?php echo $row['data']; ?></td>
  94. <td class="col-md-7"><?php echo $row['sesja']; ?></td>
  95. <td class="col-md-1"><a href="?edit=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Edytuj</a></td>
  96.  
  97. <td class="col-md-1"><a href="?del=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Usuń</a></td>
  98. </tr>
  99. <?php
  100. }
  101. ?>
  102. </table>
  103.  
  104. <hr><h3>Dodaj nową sesję:</h3>
  105.  
  106. <div id="form">
  107. <form method="post">
  108.  
  109. <div class="form-group">
  110. <label for="data"></label>
  111. <input class="form-control" type="date" name="data" placeholder="data" value="<?php if(isset($_GET['edit'])) echo $getROW['data']; ?>">
  112. </div>
  113.  
  114. <div class="form-group">
  115. <label for="sesja"></label>
  116. <textarea class="form-control" rows="8" type="text" name="sesja" placeholder="sesja" value="<?php if(isset($_GET['edit'])) echo $getROW['sesja']; ?>"></textarea>
  117. </div>
  118.  
  119. <?php
  120. if(isset($_GET['edit']))
  121. {
  122. ?>
  123. <button class="btn btn-default" type="submit" name="update">Uaktualnij</button>
  124. <?php
  125. }
  126. else
  127. {
  128. ?>
  129. <button class="btn btn-default" type="submit" name="save">Zapisz</button>
  130. <?php
  131. }
  132. ?>
  133. </td>
  134. </tr>
  135. </table>
  136. </form>
  137.  
  138. </div>
  139.  
  140. </div>
  141.  
  142.  
  143.  
  144. <?php
  145.  
  146. include('partials/footer.php');
  147.  
  148. ?>




Oj, chyba coś mylę. Logika:

1. Wyświetlić tabelę z notatkami pacjentów.
2. Obok rekordów - data - notatka - przyciski edytuj / usuń.
3. Umieścić pod spodem formularz dodawania nowej notatki

4. Jeśli dodaj nową notatkę - to wpis do bazy i przeładuj all.
5. Jeśli kliknięcie na usuń - to usuń z bazy i przeładuj all.
6. Jeśli edycja, to w polach formularza dodawania wyświetl pola wg id,
zmień przycisk na uaktualnij i insert to do bazy. Potem przeładuj.

Chyba nie rozumiem, jak mam najpierw edytować, a potem wyświetlić, jeśli to jest na jednej stronie:(
Go to the top of the page
+Quote Post
nospor
post 23.08.2015, 12:41:17
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Chyba nie rozumiem, jak mam najpierw edytować, a potem wyświetlić, jeśli to jest na jednej stronie
Ja nie mowie o formularzu do edycji... Ja mowie o kodzie, gdzie w bazie juz zmieniasz dane. Ten wlasnie kod ma byc wykonany przed wyswieteniem listy. Tak samo jak kod odpowiedzialny za skaowanie z bazy czy za dodanie z bazy.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arstherapia
post 23.08.2015, 12:51:02
Post #5





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(nospor @ 23.08.2015, 13:41:17 ) *
Ja nie mowie o formularzu do edycji... Ja mowie o kodzie, gdzie w bazie juz zmieniasz dane. Ten wlasnie kod ma byc wykonany przed wyswieteniem listy. Tak samo jak kod odpowiedzialny za skaowanie z bazy czy za dodanie z bazy.


Ale czy to oznacza konieczność posiadania dwóch stron? Np.

/notatki.php --> wyświetlanie tabeli z danymi, formularz do edycji, etc.
/crud.php --> tutaj dzieją się operacje, po których jest powrót do strony notatki.php ?

Myślałem o tym, ale jest problem. Otóż:

1. Strona index.php - tutaj listuję przyciski z nazwami tabel, nazwę tabeli przekazuję do urla .

  1.  
  2. <?
  3. error_reporting(E_ALL ^ E_DEPRECATED);
  4.  
  5. mysql_connect ('localhost', 'root', 'hobbiton');
  6. mysql_select_db ('pacjenci');
  7.  
  8. $result = mysql_query("show tables");
  9. while($table = mysql_fetch_array($result)) {
  10. echo('<p><a class="btn btn-default btn-block" href="sesje.php?table=' . $table[0] . '"role="button">'. $table[0] . '</a></p>');
  11. }
  12.  
  13. // Close the connection
  14. ?>


2. Strona notatki.php - wyświetla mi tabelę z danymi wg urla + formularz, plus przyciski do edycji.


  1. <table class="table table-bordered">
  2.  
  3. <?php $res = $MySQLiconn->query("SELECT * FROM $table");
  4. while($row=$res->fetch_array())
  5. {
  6. ?>
  7.  
  8. <tr>
  9. <td class="col-md-1"><?php echo $row['id']; ?></td>
  10. <td class="col-md-2"><?php echo $row['data']; ?></td>
  11. <td class="col-md-7"><?php echo $row['sesja']; ?></td>
  12. <td class="col-md-1"><a href="?edit=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Edytuj</a></td>
  13.  
  14. <td class="col-md-1"><a href="?del=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Usuń</a></td>
  15. </tr>
  16. <?php
  17. }
  18. ?>
  19. </table>


3. Strona crud.php - tutaj musiałbym już przekazać i poprzednią zmienną $table oraz nowe, wysłane z formularza, żeby powrócić...
Na tym etapie już się gubię. Nie mam pojęcia, jak to zrobić sad.gif Dodatkowo, musiałbym pewnie jakoś zapamiętać url z punktu 2. Czarna magia.



Go to the top of the page
+Quote Post
nospor
post 23.08.2015, 12:52:59
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Ale czy to oznacza konieczność posiadania dwóch stron? Np.
Kurcze, ale ja ci nie kaze pisac zadnych nowych stron. Owszem, wypadaloby by to bylo wszystko ladnie i pieknie, ale ja ci teraz mowie jak masz to zrobic z tym co masz teraz bez danego dodawania nowych rzeczy...

Poprostu kod, ktory cos robi w bazie (dodaje, edytuje, usuwa) masz przeniesc przed kod, ktory wyswietla dane z bazy. Tu NIE MA zadnej filozofii.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
arstherapia
post 23.08.2015, 13:02:08
Post #7





Grupa: Zarejestrowani
Postów: 88
Pomógł: 1
Dołączył: 13.08.2014

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


Cytat(nospor @ 23.08.2015, 13:52:59 ) *
Kurcze, ale ja ci nie kaze pisac zadnych nowych stron. Owszem, wypadaloby by to bylo wszystko ladnie i pieknie, ale ja ci teraz mowie jak masz to zrobic z tym co masz teraz bez danego dodawania nowych rzeczy...

Poprostu kod, ktory cos robi w bazie (dodaje, edytuje, usuwa) masz przeniesc przed kod, ktory wyswietla dane z bazy. Tu NIE MA zadnej filozofii.


Proszę o litościwe traktowanie.

Rozumiem, że ten kod:

  1. <?php
  2. if(isset($_GET['edit']))
  3. {
  4. ?>
  5. <button class="btn btn-default" type="submit" name="update">Uaktualnij</button>
  6. <?php
  7. }
  8. else
  9. {
  10. ?>
  11. <button class="btn btn-default" type="submit" name="save">Zapisz</button>
  12. <?php
  13. }
  14. ?>
  15. </td>
  16. </tr>
  17. </table>
  18. </form>
  19.  
  20. </div>
  21.  
  22. </div>
  23.  
  24. <?php
  25.  
  26.  
  27.  
  28. /* code for data insert */
  29.  
  30. if(isset($_POST['save']))
  31. {
  32.  
  33. $data = $MySQLiconn->real_escape_string($_POST['data']);
  34. $sesja = $MySQLiconn->real_escape_string($_POST['sesja']);
  35.  
  36. $SQL = $MySQLiconn->query("INSERT INTO $table(data,sesja) VALUES('$data','$sesja')");
  37.  
  38. if(!$SQL)
  39. {
  40. echo $MySQLiconn->error;
  41. }
  42. }
  43. /* code for data insert */
  44.  
  45.  
  46. /* code for data delete */
  47.  
  48.  
  49. if(isset($_GET['del']))
  50.  
  51. {
  52. $SQL = $MySQLiconn->query("DELETE FROM $table WHERE id=".$_GET['del']);
  53.  
  54. ?>
  55. <script language="javascript" type="text/javascript">
  56. alert('Dziekujemy!');
  57.  
  58. </script><?php
  59.  
  60. }
  61.  
  62. /* code for data delete */
  63.  
  64.  
  65.  
  66. /* code for data update */
  67. if(isset($_GET['edit']))
  68. {
  69. $SQL = $MySQLiconn->query("SELECT * FROM $table WHERE id=".$_GET['edit']);
  70. $getROW = $SQL->fetch_array();
  71. }
  72.  
  73. if(isset($_POST['update']))
  74. {
  75. $SQL = $MySQLiconn->query("UPDATE $table SET data='".$_POST['data']."', sesja='".$_POST['sesja']."' WHERE id=".$_GET['edit']);
  76.  
  77.  
  78. }
  79. /* code for data update */
  80.  
  81. ?>


mam wkleić gdzieś w poniższy - ale nie wiem, gdzie. Próbowałem w kilka miejsc i nie działa...

  1. <?php
  2.  
  3. include('partials/header.php');
  4.  
  5. define('_HOST_NAME','localhost');
  6. define('_DATABASE_NAME','pacjenci');
  7. define('_DATABASE_USER_NAME','root');
  8. define('_DATABASE_PASSWORD','hobbiton');
  9.  
  10. $MySQLiconn = new MySQLi(_HOST_NAME,_DATABASE_USER_NAME,_DATABASE_PASSWORD,_DATABASE_NAME);
  11.  
  12. if($MySQLiconn->connect_errno)
  13. {
  14. die("ERROR : -> ".$MySQLiconn->connect_error);
  15. }
  16.  
  17. ?>
  18.  
  19.  
  20.  
  21. <div class="col-lg-10">
  22.  
  23. <?php $table=$_GET['table'];?>
  24.  
  25. <hr><h3><?php echo $table?></h3><br>
  26.  
  27. <table class="table table-bordered">
  28.  
  29. <?php $res = $MySQLiconn->query("SELECT * FROM $table");
  30. while($row=$res->fetch_array())
  31. {
  32. ?>
  33.  
  34. <tr>
  35. <td class="col-md-1"><?php echo $row['id']; ?></td>
  36. <td class="col-md-2"><?php echo $row['data']; ?></td>
  37. <td class="col-md-7"><?php echo $row['sesja']; ?></td>
  38. <td class="col-md-1"><a href="?edit=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Edytuj</a></td>
  39.  
  40. <td class="col-md-1"><a href="?del=<?php echo $row['id'];?>&table=<?php echo $table?>" class="btn btn-default" role="button">Usuń</a></td>
  41. </tr>
  42. <?php
  43. }
  44. ?>
  45. </table>
  46.  
  47. <hr><h3>Dodaj nową sesję:</h3>
  48.  
  49. <div id="form">
  50. <form method="post">
  51.  
  52. <div class="form-group">
  53. <label for="data"></label>
  54. <input class="form-control" type="date" name="data" placeholder="data" value="<?php if(isset($_GET['edit'])) echo $getROW['data']; ?>">
  55. </div>
  56.  
  57. <div class="form-group">
  58. <label for="sesja"></label>
  59. <textarea class="form-control" rows="8" type="text" name="sesja" placeholder="sesja" value="<?php if(isset($_GET['edit'])) echo $getROW['sesja']; ?>"></textarea>
  60. </div>
  61.  
  62.  
  63.  
  64. <?php
  65.  
  66. include('partials/footer.php');
  67.  
  68. ?>
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 Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:06