Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] edycja tabeli w php
dentopolis
post 27.06.2017, 12:36:38
Post #1





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


mam tabelę wypełnianą danymi z bazy mysql do odpowiednich pól. jak jednym przyciskiem zapisać wszystkie modyfikacje?



obecny kod:
  1.  
  2. <form name='magazyn' method='GET' action='zapiszedycjemagazynu.php'>
  3.  
  4. <table border="1" width="100%" class="table table-striped table-bordered">
  5. <tr>
  6. <td align='center'><b>kategoria</b></td>
  7. <td align='center'><b>produkt</b></td>
  8. <td align='center'><b>opakowań</b></td>
  9. <td align='center'><b>dlailuop</b></td>
  10. <td align='center'><b>cena</b></td>
  11. <td align='center'><b>użycia</b></td>
  12. <td align='center'><b>sprawdzenie</b></td>
  13. </tr>
  14.  
  15. <?php
  16. $servername = "localhost";
  17. $username = "root";
  18. $password = "";
  19. $dbname = "gabinet";
  20.  
  21. $conn = new mysqli($servername, $username, $password, $dbname);
  22.  
  23. mysqli_set_charset( $conn, 'utf8' );
  24. if ($conn->connect_error) {
  25. die("Connection failed: " . $conn->connect_error);
  26. }
  27.  
  28. $sql = "SELECT * FROM magazyn";
  29. $result = $conn->query($sql);
  30.  
  31. if ($result->num_rows > 0) {
  32. while($row = $result->fetch_assoc()) {
  33.  
  34. $id=$row["id"];
  35. $kategoria=$row["kategoria"];
  36. $produkt=$row["produkt"];
  37. $opakowan=$row["opakowan"];
  38. $dlailuop=$row["dlailuop"];
  39. $cena=$row["cena"];
  40. $uzycia=$row["uzycia"];
  41. $sprawdzenie=$row["sprawdzenie"];
  42.  
  43. echo "<input name='id' type='hidden' value='$id'>";
  44. echo "<tr>";
  45. echo "<td><input type='text' name='kategoria' value='$kategoria' size='' class='form-control text-center'></td>";
  46. echo "<td align='center'><input type='text' name='produkt' value='$produkt' size='' class='form-control text-center'></td>";
  47. echo "<td align='center'><input type='text' name='opakowan' value='$opakowan' size='2' class='form-control text-center'></td>";
  48. echo "<td align='center'><input type='text' name='dlailuop' value='$dlailuop' size='2' class='form-control text-center'></td>";
  49. echo "<td align='center'><input type='text' name='cena' value='$cena' size='20' class='form-control text-center'></td>";
  50. echo "<td align='center'><input type='text' name='uzycia' value='$uzycia' size='20' class='form-control text-center'></td>";
  51. echo "<td align='center'><input type='text' class='datepicker form-control text-center' name='sprawdzenie' value='$sprawdzenie' size='8'></td>";
  52. echo "</tr>";
  53.  
  54. }
  55.  
  56. echo "</table>";
  57.  
  58. } else {
  59. echo "";
  60. }
  61.  
  62. ?>
  63. <br/>
  64. <button type='submit' class='btn btn-danger'>zapisz</button>
  65. </form>
Go to the top of the page
+Quote Post
trueblue
post 27.06.2017, 12:48:49
Post #2





Grupa: Zarejestrowani
Postów: 6 761
Pomógł: 1822
Dołączył: 11.03.2014

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


Pola powinny mieć nazwę: nazwa[id]


--------------------
Go to the top of the page
+Quote Post
dentopolis
post 29.06.2017, 14:02:22
Post #3





Grupa: Zarejestrowani
Postów: 252
Pomógł: 0
Dołączył: 14.08.2016

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


dobrze, nazwę tak pola ale jak wtedy napisać kod?
Go to the top of the page
+Quote Post
Puszy
post 29.06.2017, 14:09:37
Post #4





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Dentopolis - użytkownicy forum.php.pl, praca zbiorowa
Go to the top of the page
+Quote Post
dr_NO
post 29.06.2017, 14:43:49
Post #5





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


Co prawda w trochę przestarzałej wersji (mysql_) ale zasada działania taka sama (część logiczna): http://www.phpeasystep.com/mysql/10.html


--------------------
woop woop.
Go to the top of the page
+Quote Post
Rysh
post 29.06.2017, 20:43:39
Post #6





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Trochę offtopic, czy waszym zdaniem nie lepiej zrobić dla każdego wiersza osobny formularz zamiast jednego zbiorowego ?


--------------------
Go to the top of the page
+Quote Post
markuz
post 29.06.2017, 20:45:26
Post #7





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

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


Cytat
jak jednym przyciskiem zapisać wszystkie modyfikacje?


Cytat
Trochę offtopic, czy waszym zdaniem nie lepiej zrobić dla każdego wiersza osobny formularz zamiast jednego zbiorowego ?


--------------------
Go to the top of the page
+Quote Post
Rysh
post 29.06.2017, 20:53:49
Post #8





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Napisałem przecież że offtopic, nie odnoszę się dokładnie do tematu który założył autor - lecz jest z nim mocno związany i pytałem o zdanie bardziej doświadczonych programistów.


--------------------
Go to the top of the page
+Quote Post
dr_NO
post 30.06.2017, 07:02:27
Post #9





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


Cytat(Rysh @ 29.06.2017, 21:53:49 ) *
Napisałem przecież że offtopic, nie odnoszę się dokładnie do tematu który założył autor - lecz jest z nim mocno związany i pytałem o zdanie bardziej doświadczonych programistów.


Powiedzmy że masz zmienną ilość pól, w takim wypadku ilość formularzy obsługujących każdy z przypadków może być całkiem spora.


--------------------
woop woop.
Go to the top of the page
+Quote Post
Puszy
post 30.06.2017, 08:50:27
Post #10





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Cytat(dr_NO @ 30.06.2017, 08:02:27 ) *
Powiedzmy że masz zmienną ilość pól, w takim wypadku ilość formularzy obsługujących każdy z przypadków może być całkiem spora.


Ale dzięki temu zyskujesz kontrolę, zapisujesz rzeczywiście tylko ten wiersz który chcesz zmienić. Jednak takie rozwiązanie nie ma sensu gdy strona się przeładowuje, musiałby być zastosowany AJAX, dzięki temu użytkownik może np. wprowadzić wpierw zmiany (chociażby z kartki czy Excela) a następnie weryfikować poprawność danych i zapisywać linijka po linijce.
Go to the top of the page
+Quote Post
dr_NO
post 30.06.2017, 14:16:54
Post #11





Grupa: Zarejestrowani
Postów: 197
Pomógł: 15
Dołączył: 10.09.2006
Skąd: Siemianowice Śląskie / Katowice

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


Cytat
a następnie weryfikować poprawność danych i zapisywać linijka po linijce.
- dajmy na to 2000 wierszy - powodzenia.
Jeżeli chciałbym edytować jeden konkretny wiersz, to wolałbym to zrobić przez PMA, niż za każdym razem zapisywać po jednym wierszu zmiany dajmy na to w 300 rekordach. (inną sprawą jest to że bym pewnie to zrobił w excelu, i zaimportował CSV)


--------------------
woop woop.
Go to the top of the page
+Quote Post
Puszy
post 30.06.2017, 14:47:06
Post #12





Grupa: Zarejestrowani
Postów: 279
Pomógł: 42
Dołączył: 10.10.2011

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


Cytat(dr_NO @ 30.06.2017, 15:16:54 ) *
- dajmy na to 2000 wierszy - powodzenia.
Jeżeli chciałbym edytować jeden konkretny wiersz, to wolałbym to zrobić przez PMA, niż za każdym razem zapisywać po jednym wierszu zmiany dajmy na to w 300 rekordach. (inną sprawą jest to że bym pewnie to zrobił w excelu, i zaimportował CSV)


Równie dobrze mogę powiedzieć: Jeżeli chciałbym edytować jeden konkretny wiersz i przy tym musiał obsłużyć formularz z 2000 wierszy, to wolałbym zapisać pojedynczy wiersz.

Przecież to jest formularz dla użytkownika. Pytanie w jakim celu, jeżeli służy to za edycję wielkiego zbioru to najlepszą opcją jest połączenie kilku rozwiązań jednocześnie

- zapis jednego wiersza
- zapis wielu wierszy w zaznaczonych lub w których stwierdzono zmiany
- zapis wszystkich wierszy jednocześnie

Wtedy przy zmianie jednego pola nie wysyłasz jak głupi wszystkich inputów do serwera...
Go to the top of the page
+Quote Post
Rysh
post 3.07.2017, 07:14:32
Post #13





Grupa: Zarejestrowani
Postów: 821
Pomógł: 111
Dołączył: 11.09.2006
Skąd: Biała Podlaska

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


Jakim problemem jest 300 formularzy? Podpiąć pod każdy wiersz osobny formularz i dodać zdarzenie on change w jquery i ajaxowo aktualizować rekord.


--------------------
Go to the top of the page
+Quote Post
Pyton_000
post 3.07.2017, 08:26:25
Post #14





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Idąc dalej równie dobrze można po zmodyfikowaniu wiersza Ajaxem wysyłać tylko to co się zmieniło, więc i 1 przyciskiem aktualizujesz wszystko i tylko to co się zmieniło.
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: 25.04.2024 - 10:45