Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Wartosc domyślna NULL
Forum PHP.pl > Forum > Przedszkole
-armind-
Witam po raz setny tongue.gif

Kolejny problem jest nastepujący przy pustym polu i zapisaniu. Wyswietla pustą tabele w bazie a powinno ustawic na NULL




  1. public function edit()
  2. {
  3. if ($this->input->post('edit'))
  4. {
  5. if ($this->input->post('pass') != '' && $this->input->post('pass_c') != '')
  6. {
  7. $this->form_validation->set_rules('pass', '', 'trim|required|xss_clean|callback__html2txt');
  8. $this->form_validation->set_rules('pass_c', '', 'trim|required|xss_clean|callback__html2txt|matches[pass]');
  9. }
  10. $this->form_validation->set_rules('name', '', 'trim|required|xss_clean|callback__html2txt');
  11. $this->form_validation->set_rules('dd', '', 'required|xss_clean');
  12. $this->form_validation->set_rules('mm', '', 'required|xss_clean');
  13. $this->form_validation->set_rules('yy', '', 'required|xss_clean');
  14. $this->form_validation->set_rules('city', '', 'trim|xss_clean|callback__html2txt');
  15. $this->form_validation->set_rules('email', '', 'trim|xss_clean|callback__html2txt|valid_email');
  16. $this->form_validation->set_rules('gg', '', 'trim|xss_clean|callback__html2txt');
  17. $this->form_validation->set_rules('music', '', 'trim|xss_clean|callback__html2txt');
  18. $this->form_validation->set_rules('zainteresowania', '', 'trim|xss_clean|callback__html2txt');
  19. if ($this->input->post('dd') == 0 || $this->input->post('mm') == 0 || $this->input->post('yy') == 0 or $this->form_validation->run() == FALSE)
  20. {
  21. $this->session->set_flashdata('error', 'W formularzu wystąpiły błędy, któreś pole zostało wypełnione nieprawidłowo.');
  22. redirect('profile/index');
  23. }
  24. else
  25. {
  26. $id = $this->session->userdata('user_id');
  27. if ($this->input->post('pass') != '' && $this->input->post('pass_c') != '')
  28. {
  29. $data['pass'] = $this->input->post('pass');
  30. }
  31. $data['name'] = $this->input->post('name');
  32. $data['user_dd'] = $this->input->post('dd');
  33. $data['user_mm'] = $this->input->post('mm');
  34. $data['user_yy'] = $this->input->post('yy');
  35. $data['city'] = $this->input->post('city');
  36. $data['email'] = $this->input->post('email');
  37. $data['gg'] = $this->input->post('gg');
  38. $data['music'] = $this->input->post('music');
  39. $data['zainteresowania'] = $this->input->post('zainteresowania');
  40. $this->Profile_model->editUser($data, $id);
  41. redirect('profile/index');
  42. }
  43.  
  44. }
  45. else
  46. redirect('profile/index');
  47. }
-armind-
Takie cos wymyślilem ale nie wiem czy to dobre rozwiązanie


  1. $data['zainteresowania'] = ($this->input->post('zainteresowania')!='' ? "'".$this->input->post('zainteresowania')."'" : NULL) ;
wujek2009
W sensie pole input jest puste, więc zwraca '' (pusty ciąg znaków) - ale w bazie ma to zapisywać jako NULL? Użyj odpowiednich warunków - właściwie Twój przykład z drugiego postu jest OK - tylko dodałbym dla pewności filtrowanie wg. trim
  1. $data['zainteresowania'] = (trim($this->input->post('zainteresowania'))!='' ? "'".$this->input->post('zainteresowania')."'" : NULL) ;


lub dla ułatwienia/skrócenia kodu napisz sobie funkcje, która zwróci albo pełny string albo wartość NULL
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.