zapisywanie stanu checkboxa do tabeli

0

cześć, mam coś takiego: pobieram rekordy z tabeli i przy każdym jest checkbox. Do tabeli (mysql) zapisuje stan checkboxa : 0 - odblokowany, 1 - zablokowany.
Pole to nosi nazwe sg. Zapis odbywa sie po kliknięciu przycisku submit.
Jeśłi zaznacze przycisk -> zapisuje mi do tabeli 1 i 0 dla odblokowanego. jeśli odznacze to musi zmienić na 0 itd. mOge odznaczć oczywiście kilka lub kilka zaznaczyć checkboxów ale chce żeby mi zapisywało ten stan w postaci 0 i 1 do tabeli.
Dla zaznaczonego stanu działa mi zapis ale nie mogę sobie poradzić z stanem odblokowanym - nie zapisuje go do bazy. Mam coś takiego:

for ($i=0; $i < $num; $i++) {
if ($sg[$i]!='0') {
$sql= "UPDATE rekordy SET sg='1' WHERE ID=$ID[$i]";
$result=mysql_query($sql);
} else {
$sql= "UPDATE rekordy SET sg='0' WHERE ID=$ID[$i]";
$result=mysql_query($sql);
}
}

a w formularzu mam pole ukryte dla każdego rekordu i checkbox:


<input type="hidden" name=ID[] value="'.$ID.'" class="s1" size="3">
<input type="checkbox" name=sg[] value="1">

Prosze o pomoc.

0

Według mnie jeżeli zaznaczysz checkbox'a to w wyniku otrzymasz wartość z value. Gdy checkbox bedzie odznaczony to $sg[$i] == "";

Czyli nie sprawdzaj czy $sg[$i] != "0"
tylko sprawdź czy $sg[$i] == "1"

Twój warunek powinien wyglądać mniej więcej tak

if ($sg[$i] == '1') 
  {
  $sql= "UPDATE rekordy SET sg='1' WHERE ID=$ID[$i]";
  } 
else 
  {
  $sql= "UPDATE rekordy SET sg='0' WHERE ID=$ID[$i]";
  }
$result=mysql_query($sql);

I jeszcze jedno. Osobieście nie zapisywał bym wartości jak stringi ( '0', '1' ). Opuść apostrofy to wtedy w bazie bedziesz miał liczby.

1 użytkowników online, w tym zalogowanych: 0, gości: 1