Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] & [MySQL] wstawianie wartości NULL do tabeli
bobo1
post 8.03.2008, 07:24:37
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 1
Dołączył: 7.03.2008

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


W jaki sposób wstawić wartość NUll do tabeli?

Dane pochodzą z formularza. Jak w formularzu pole jest puste to powinna zostać wstawiona wartość NULL


CODE
$_POST['pole1'] = ($_POST['pole1']!='' ? $_POST['pole1'] : NULL) ;


Tak wygląda zapytanie

CODE
$zapytanie = "UPDATE `tabela` SET
`pole1`='".$_POST['pole1']."'
WHERE `id`='".$_GET['id']."' ";


Pole w tabeli jest typu int. Domyślna wartość NULL

Problem polega na tym, że za każdym razem wstawia się wartość 0 jak w formularzu jest puste pole.

Jak wyświtlam sobie zapytanie to wygląda ono w następujący sposób

zapytanie: UPDATE `tabela` SET `pole`='' WHERE `id`='1'

Jak rozwiązać ten problem ?

Ten post edytował bobo1 8.03.2008, 07:26:59
Go to the top of the page
+Quote Post
-Wieviór-
post 8.03.2008, 08:31:48
Post #2





Goście







Według mnie, skoro w tabeli pole jest NULL, to możesz po prostu w zapytaniu nie ustawiać tego pola i domyślnie Ci się ustawi NULL.
Go to the top of the page
+Quote Post
phpion
post 8.03.2008, 08:39:15
Post #3





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Możesz zrobić tak jak pisze ~Wieviór.
Ja jednak wyjaśnię Ci dlaczego Twój skrypt nie działa. Zauważ jakie dostaniesz zapytanie przy danych $_GET['id']=1, $_POST['pole1'] = NULL:
  1. <?php
  2. $zapytanie = "UPDATE `tabela` SET `pole1`='".$_POST['pole1']."' WHERE `id`='".$_GET['id']."' ";
  3. ?>

W rezultacie wykona się zapytanie:
  1. UPDATE `tabela` SET `pole1`='NULL' WHERE `id`='1'

czyli w pole `pole1` zostanie wstawiony ciąg NULL (bo jest ujęty w ' więc jest traktowany jako ciąg). Aby traktować NULL jako wartość zmień:
  1. <?php
  2. $_POST['pole1'] = ($_POST['pole1']!='' ? "'".$_POST['pole1']."'" : NULL) ;
  3. ?>

oraz
  1. <?php
  2. $zapytanie = "UPDATE `tabela` SET `pole1`=".$_POST['pole1']." WHERE `id`='".$_GET['id']."' ";
  3. ?>

i wtedy otrzymasz takie zapytania:
  1. UPDATE `tabela` SET `pole1`='jakiś wpis' WHERE `id`='1'

lub
  1. UPDATE `tabela` SET `pole1`=NULL WHERE `id`='1'

Ale lepiej zrobić tak jak sugeruje Wieviór tongue.gif
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: 14.08.2025 - 08:06