Мне нужно создать таблицу Preferences в SQL, используя данные из флажков. Это Pool, Jacuzzi, Backyard, Smart House – это столбцы в настройках, которые являются TINYINTS для представления Boolean T или F. Когда пользователь проверяет поле, я хочу, чтобы значение было равным 1, иначе оно остается равным 0. Поэтому скажите, что пользователь хочет бассейн и задний двор, и проверяет эти две коробки. мой $ _POST [предпочтения] будет массивом, который будет [1,0,1,0].
<input type="checkbox" name="preferences[]" value="Pool"> Pool<br> <input type="checkbox" name="preferences[]" value="Jacuzzi"> Jacuzzi<br> <input type="checkbox" name="preferences[]" value="Backyard"> Backyard<br> <input type="checkbox" name="preferences[]" value="Smart"> Smart House<br>
UPDATE: Хорошо, да, это близко. Это то, что у меня есть, что несколько похоже на это, однако я не могу сказать, действительно ли оно дает значение 1 или 0. Если оно равно 1, оно появляется в массиве, но если оно не проверено, оно не выполняется. Таким образом, это заканчивается [Бассейн, Джакузи]. Я не уверен, хотя если они имеют значение 1, а другие имеют значение 0, или это просто подразумевается.
foreach ($preferences as $key => $val) { if(isset($key)){ $val=1; } else{ $val = 0; } }
UPDATE2: Решение. Я нашел работу похожей на @ chris85
** I found out that keeping hidden checkboxes would work for defaulting values to zero if they arent checked. <input type="hidden" name="pool" value="0"/> <input type="checkbox" id="pool" name="pool" value="1">Pool<br> $low= $_POST['low']; $high =$_POST['high']; $pool = $_POST['pool']; $jacuzzi= $_POST['jacuzzi']; $backyard= $_POST['backyard']; $smart= $_POST['smart']; $addPreferences = "INSERT INTO Preferences(Pool,Jacuzzi,Backyard,Smart) VALUES ('$pool','$jacuzzi','$backyard','$smart')";