Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zaznaczenie pola wyboru aktualizacji PHP/MySQL do bazy danych

Nie masz tutaj niczego, co ustawia wartości na zero. Pola, które nie są zaznaczone, będą po prostu nieobecne w tablicy $_POST.

Musisz sporządzić oddzielną listę nazw wszystkich pól wyboru i przeglądać je, porównując je z tablicą $_POST.

Edytuj: Nie zamierzałem pisać żadnego kodu, ale:

$allids = array('id1','id2','id3');

foreach ($allids as $oneid) {
  $val = (int) isset($_POST[$oneid]);  // will be 0 or 1
  mysql_query("UPDATE istable SET showPP = $val WHERE id = ".mysql_real_escape_string($oneid));
}

Zauważ, że tak naprawdę nie potrzebujemy tutaj mysql_real_escape_string, ponieważ wiemy, że wszystkie wartości id są bezpieczne, ale jest to dobra praktyka na wypadek, gdyby ktoś pojawił się później i nieostrożnie zmienił tablicę $allids.

Edytuj ponownie: Załóżmy, że nie wiemy, jakich identyfikatorów szukać.

mysql_query("UPDATE istable SET showPP = 0");
foreach ($_POST as $oneid=>$nothing) {
  mysql_query("UPDATE istable SET showPP = 1 WHERE id = ".mysql_real_escape_string($oneid));
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Niedozwolona mieszanka zestawień (utf8mb4_unicode_ci,IMPLICIT) i (utf8mb4_general_ci,IMPLICIT) dla operacji '='

  2. Czy można użyć SQL do sortowania według daty, ale umieścić daty puste na końcu zestawu wyników?

  3. mysqli_query() oczekuje co najmniej 2 parametrów, 1 podany w?

  4. Jak działa funkcja RPAD() w MySQL

  5. Muszę automatycznie_inkrementować pole w MySQL, które nie jest kluczem podstawowym