Właśnie tworze małą aplikację (w oparciu o PHP i Mysql), w której użytkownik będzie miał możliwość zarejestrowania się , zalogowania i edytowania swoich danych po pomyślnym zalogowaniu. Konstrukcja tabeli w bazie danych jest standardowa (Pierwsze pole to oczywiście id jako Integer, auto increment i primery key. Reszta pól to Varchar not null m.in dla nazwiska, imienia, pseudonimu, email itd ). Zapytanie sql wygląda tak
mysql_query("UPDATE lista SET name = '{$this->name}', surname = '{$this->surname}', nick = '{$this->nick}', email = '{$this->email}', phone = '{$this->phone}', birthday = '{$this->birthday}' WHERE `id` = '{$_SESSION['ID']}' ");
Na chwile obecną gdy użytkownik będzie chciał edytować np tylko name a pozostałe pola formularza pozostawi puste (nic w nie wpisując) to te "puste wartości "
z pozostałych pol nadpiszą w bazie danych pola wypełnione podczas rejestracji (czyli je wykasują pozostawiając pustą wartość). Jak osiągnąć taki efekt aby tylko wpisane wartości w formularzu HTML były uaktualniane a te nie wpisane po prostu się nie uaktualniały. Próbowałem następujących rozwiązań
Kod
$this->name = (isset($_POST['name']) == TRUE && !empty($_POST['name']) == TRUE) ? $this->filter($_POST['name']) : null;
zamieniałem również null na false i '' (pusty string ) ale efekt był ten sam. filter z kodu powyżej to funkcja (metoda), która przy pomocy wyrażeń regularnych określa co może się znaleźć w bazie danych. Z góry dzięki za pomoc