Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyświetlanie danych mysql i notyfiakcja po zmianie.
Forum PHP.pl > Forum > PHP
adek-
Witam próbuję zrobić coś takiego co pokaże mi zmianę danych na stronie poszczególnych wpisów mysql.
Czyli np. mam 3 wartości liczbowe, które edytuję w panelu poprzez www (mysql -> update) i np jeśli zmienię tylko wartość jednej liczby, chcę aby np się pogrubiła.
Moja wizja jest taka i powiedzcie mi czy to zadziała...
Chcę zrobić w mysql owe 3 wartości, ale w dwóch wersjach np A i B. I np są one zapisane w polu A, jeśli zmieniam wartości to np zczytuej pole A zapisuje w polu B i pole B ustawiam nowe wartości, a później porównuje A i B i jeśli coś się zmieniło to warunek if wyrzuci mi np zmienioną wartość jako pogrubioną? Da radę, czy jest coś łatwiejszego niż moja kombinatoryka?

Przykład np mam owe wartości takie w polu A (2, 2 ,2), daje edytuj i wpisuje (2, 1, 2) i przy submit kopiują się wartości z A do B,( czyli B ma 2,2,2) a, A nowe wartości (2,1,2). Wyświetlam na stronie warunek if A!=B to pogrub, czyli w tym wypadku (2,1,2) ?

-------
chyba, żeby zrobić coś takiego, że dane za każdym razem się dodają i porównują się ostatnie 2 wpisy hm?questionmark.gif
cycofiasz
Ja bym dorobił 1 dodatkową kolumnę w której przechowywałbym informację o tym które pola zostały zmienione (0 - bez zmian, 1 - zmiana).
Przykładowo:
000 - bez zmian wszystkie pola
010 oznaczać będzie że druga kolumna uległa zmianie,
001 - trzecia kolumna się zmieniła
111 - wszystkie się zmieniły

jak widać jest to nic innego jak liczba w systemie binarnym którą można przechowywać jako liczba całkowita lub po prostu jako string itp
adek-
Cycofiasz masz rację, string w postaci bitu danych był by dobry, ale powiem szczerze, że jak napisałem to zacząłem działać i próbowałem tak jak sobie to ubzdurałem i wyświetla mi dobrze kolorując całe pole TD za pomocą warunku:

  1. $q = "SELECT * FROM baza";
  2. $r = mysql_query($q);
  3. while($rows = mysql_fetch_array($r)) {
  4.  
  5. if($rows['wal_max']==$rows['wal_maxb']) {
  6. echo "<td align=\"center\" bgcolor=\"#e9e9e9\"><strong>".$rows['wal_max']."</strong></td>";
  7. } else {
  8. echo "<td align=\"center\" bgcolor=\"#FF0000\"><strong>".$rows['wal_max']."</strong></td>";
  9. }



ale nie wiem jak automatycznie mają się dane wprowadzać z A do B ... wartości A to są np "wal_k", a dla B będzie to "wal_kb" i analogicznie z innymi "b" na końcu
  1. //edycja informacji
  2. ....
  3. if(!isset($_POST['send'])) {
  4. $q = "SELECT * FROM baza WHERE id=$id";
  5. $r = mysql_query($q);
  6.  
  7. while($row = mysql_fetch_assoc($r)) {
  8. echo "<form name=\"formularz\" action=\"?do=edit\" method=\"post\" enctype=\"multipart/form-data\">"
  9. ."<center><table bgcolor=\"ffffff\"><!--<input type=\"hidden\" name=\"czas\" />-->"
  10. ."<tr><td>WALUTA:</td><td><b>".$row['wal']."</b></td></tr>"
  11. ."<tr><td>KUPNO:</td><td><input type=\"text\" name=\"wal_k\" value=\"".$row['wal_k']."\" maxlength=\"6\" size=\"6\" /></td></tr>"
  12. ."<tr><td>MAX:</td><td><input type=\"text\" name=\"wal_max\" value=\"".$row['wal_max']."\" maxlength=\"6\" size=\"6\" /></td></tr>"
  13. ."<tr><td>SPRZEDAŻ:</td><td><input type=\"text\" name=\"wal_s\" value=\"".$row['wal_s']."\" maxlength=\"6\" size=\"6\" /></td></tr>"
  14. ."<tr><td>MIN:</td><td><input type=\"text\" name=\"wal_min\" value=\"".$row['wal_min']."\" maxlength=\"6\" size=\"6\" /></td></tr>"
  15. ."</table>"
  16. ."<input type=\"submit\" name=\"send\" value=\"UPDATE\" />"
  17. //."<input type=\"hidden\" name=\"data_mod\" value=\"".$row['data_mod']."\"/>"
  18. ."<input type=\"hidden\" name=\"id\" value=\"".$row['id']."\"/>"
  19. ."</form><br/></center>";
  20. }
  21. } else {
  22. // ten wpis kopiuje pola A do pól B automatycznie, co każdy update robi nadpis, więc mamy dwie ostatnie wartości
  23. $zapytanie = "UPDATE `baza` SET `wal_kb` = wal_k,`wal_maxb` = wal_max, `wal_sb` = wal_s, `wal_min` = wal_minb WHERE `id`='$id'";
  24. $idzapytania = mysql_query($zapytanie);
  25.  
  26. // zmiana podstawowych danych A po wciśnięciu submit,a - dokonuje się dopiero po skopiowaniu danych, nie wcześniej bo złe dane nam wejdą!
  27. $q = "UPDATE baza SET "
  28. ."wal_k='".$_POST['wal_k']."', "
  29. ."wal_max='".$_POST['wal_max']."', "
  30. ."wal_s='".$_POST['wal_s']."', "
  31. ."wal_min='".$_POST['wal_min']."'"
  32. //."czas='$czas'"
  33. //."data_mod=NOW()"
  34. ."WHERE id=$id";



--------------------EDITED
Działą powyżej poprawiłem kod dla potomnych, jak by chcieli zrobić kopiowanie automatyczne. Pzdr
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.