sql >> Databasteknik >  >> RDS >> Mysql

PHP/MySQL Uppdatera kryssruta val till databas

Du har inget här som sätter värdena till noll. Rutor som inte är markerade kommer helt enkelt att saknas från $_POST-matrisen.

Du måste göra en separat lista över namnen på alla kryssrutor och bläddra igenom dem och jämföra dem med $_POST-matrisen.

Redigera: Tänkte inte skriva någon kod, men:

$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));
}

Observera att vi egentligen inte behöver mysql_real_escape_string här eftersom vi vet att alla id-värden är säkra, men det är bra praxis ifall någon kommer senare och slarvigt ändrar $allids-arrayen.

Redigera igen: Anta att vi inte vet vilka id vi ska leta efter.

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. 4 sätt att hitta rader som innehåller versaler i Oracle

  2. Länka om Grid Infrastructure

  3. Hur man installerar och säkrar MariaDB på CentOS 8

  4. Slår samman 3 tabeller/frågor med MS Access Union Query