Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP] logowanie wszelkich zmian
Forum PHP.pl > Forum > Przedszkole
dentopolis
mam skrypt który różnymi plikami dokonuje zmian w tej samej tabeli. jaki kod powinienem użyć/query mysql żeby każda modyfikacja była zapisywana do osobnej tabeli "log" składającej się z id,daty zmiany,id wersji poprzedniej,id nowej wersji?

  1. <?php
  2. function connect()
  3. {
  4. $dbhost = "localhost";
  5. $dbuser = "root";
  6. $dbpass = "";
  7. $dbname = "gabinet";
  8.  
  9. $conn = new mysqli($dbhost, $dbuser, $dbpass, $dbname) or die($conn->connect_error);
  10.  
  11. return $conn;
  12. }
  13.  
  14. $conn = connect();
  15. $query = "SELECT * FROM technik";
  16. $polacz = $conn->query($query);
  17. $conn->set_charset("utf8");
  18.  
  19. if ($polacz) {
  20. $sqlsave1 = "UPDATE technik SET pacjent='$pacjent1', pracownia='$pracownia1', technik='$technik1', gabinet='$gabinet1', termin='$termin1x' WHERE id='1'";
  21.  
  22. $q1 = $conn->query($sqlsave1);
  23.  
  24.  
  25. }
  26. else {
  27. echo "problem";
  28.  
  29. }
  30. $conn->close();
  31. ?>
  32.  
b4rt3kk
Masz 2 opcje. Albo zachowujesz dane w tej samej tabeli (a tylko je ghostujesz/ukrywasz) - czyli zamiast UPDATE robisz INSERT, a wiersz, na którym chciałeś zrobić update zachowujesz, z taką jedynie zmianą, że oznaczasz go jako ukryty, plus dodajesz info, które wymieniłeś.

Lub druga opcja - możesz zrobić sobie trigger na tej tabeli i w momencie UPDATE zapisujesz dane do tabeli log, którą wymieniłeś.

Triggery w MySQL:
https://dev.mysql.com/doc/refman/5.5/en/trigger-syntax.html
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.