Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] update dynamiczny
Forum PHP.pl > Forum > Przedszkole
szybki
Jeśli rekord o np ID w bazie nie istnieje to UPDATE go doda? Druga sprawa, jak zrobić dynamiczny update, załóżmy że mam bardzo dużo pól, wyświetlam je sobie do edycji i edytuje tylko jedno, jak więc edytować przez INSERT tylko to pole, zamiast wszystkich? Sprawdzić np czy POST jest inny niż pole odczytane i na bazie tego tworzyć zapytanie SQL? A może jest jakiś inny sposób?
kapslokk
Cytat
Jeśli rekord o np ID w bazie nie istnieje to UPDATE go doda?

Nie, możesz użyć insert on duplicate key update

Cytat
Druga sprawa, jak zrobić dynamiczny update, załóżmy że mam bardzo dużo pól, wyświetlam je sobie do edycji i edytuje tylko jedno, jak więc edytować przez INSERT tylko to pole, zamiast wszystkich? Sprawdzić np czy POST jest inny niż pole odczytane i na bazie tego tworzyć zapytanie SQL? A może jest jakiś inny sposób?

Tutaj możesz np przez javascript zmieniać wartość jakiegoś inputa hidden np name="edited[>>id wiersza <<]" na 0/1 i wtedy tylko te z jedynkami zapisywać.
rafkon1990
Cytat(szybki @ 10.10.2016, 09:16:32 ) *
Jeśli rekord o np ID w bazie nie istnieje to UPDATE go doda?

INSERT INTO ... ON DUPLICATE KEY UPDATE
Cytat(szybki @ 10.10.2016, 09:16:32 ) *
Druga sprawa, jak zrobić dynamiczny update, załóżmy że mam bardzo dużo pól, wyświetlam je sobie do edycji i edytuje tylko jedno, jak więc edytować przez INSERT tylko to pole, zamiast wszystkich? Sprawdzić np czy POST jest inny niż pole odczytane i na bazie tego tworzyć zapytanie SQL? A może jest jakiś inny sposób?

Twoja myśl może się sprawdzić, możesz podpiąć event onChange na inpucie i po ajaxsie zapisać zmiany (tego pola) itp. Możesz również zapisać wszystko bez sprawdzania zmian pól (bo przecież jak użytkownik nic nie zmienił to też nadpisane dane będą takie same jak te już istniejące w bazie). Tu rozwiązań jest tyle ilu programistów. Nie ma złotego środka.
abel1
Gdybyś jednak nie chciał korzystać z JS ,to tak jak to opisałeś jest to możliwe
  1. Druga sprawa, jak zrobić dynamiczny update, załóżmy że mam bardzo dużo pól, wyświetlam je sobie do edycji i edytuje tylko jedno, jak więc edytować przez INSERT tylko to pole, zamiast wszystkich?

robisz coś takiego

  1. if(isset($_POST['wyslane']))
  2. {
  3. tutaj twoje zapytanie do bazy
  4. }
  5. if(isset($_POST['wyslane1']))
  6. {
  7. zapytanie do bazy
  8. }

I tak kolejno dla każdego pola które zmieniasz , oczywiście jeżeli tych pól jest naprawdę dużo to zrobi się z tego ogromny tasiemiec
Jednak jeżeli nie tak to JS
szydlak
Cytat(szybki @ 10.10.2016, 09:16:32 ) *
jak więc edytować przez INSERT tylko to pole, zamiast wszystkich?


A co znaczy edytować przez INSERT ?
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.