2011-12-14 40 views
0

我使用PHP將數據從聯機表單發佈到數據庫中,表單中的一些字段是複選框。我最初將複選框的數據類型定義爲BIT,但是在選擇複選框並提交表單後,當我查看數據庫時,這些值都是'b'。然後我將數據類型設置爲BOOLEAN,並將其自身切換爲TINYINT。但是,選擇複選框/提交表單後,數據庫中的值全部爲'0'。我期待看到一個'1',它對應於已經選擇的複選框,但是這沒有發生。我究竟做錯了什麼?謝謝!在php中處理Tinyint

+3

請顯示您的代碼。 – Polynomial 2011-12-14 14:00:21

回答

2

您很可能會將複選框的checked值傳遞給您的數據。複選框不使用true/false,而是使用"checked"或空白。你可以做這樣的事情:

$value = ($checked == "checked" ? 1 : 0) 
1

你是,在這裏某處,將字符串轉換爲整數。當你在PHP中這樣做時,結果可能是0(see this)。我不確定MySQL,但我懷疑它以大致相似的方式處理操作。

來處理這個問題的方法,我會說,是讓你的複選框這樣定義:

<input name="mycheckbox" type="checkbox" value="1" /> 

然後,在PHP中,讓你插入到這樣的數據庫中的值:

$myCheckBoxIsChecked = (!empty($_POST['mycheckbox'])) ? 1 : 0; 

然後,您可以使用$myCheckBoxIsChecked直接在查詢中,沒有禁制 - 因爲你知道,它永遠只能有10的值。

+0

Thanx工作.. – user1097946 2011-12-14 16:00:31