sql >> Database teknologi >  >> RDS >> Mysql

Valg af PHP/MySQL Opdater afkrydsningsfelt til database

Du har intet her, der sætter værdierne til nul. Bokse, der ikke er markeret, vil simpelthen være fraværende fra $_POST-arrayet.

Du skal lave en separat liste over navnene på alle afkrydsningsfelterne og cykle gennem dem og sammenligne dem med $_POST-arrayet.

Rediger: Havde ikke tænkt mig at skrive nogen kode, 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));
}

Bemærk, at vi ikke rigtig har brug for mysql_real_escape_strengen her, da vi ved, at alle id-værdier er sikre, men det er god praksis, hvis nogen kommer senere og skødesløst ændrer $allids-arrayet.

Rediger igen: Antag, at vi ikke ved, hvilke id'er vi skal kigge 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. Hvad skal du gøre, når du har brug for heltal større end 20 cifre på mysql?

  2. MySQL-hjælp:Sådan finder du alle ordrer fra en kunde indtil pris <=20 og status='ubetalt'

  3. Konverter javascript til datoobjekt til mysql-datoformat (ÅÅÅÅ-MM-DD)

  4. SQLSTATE[HY000]:Generel fejl:1835 Forkert kommunikationspakke på LARAVEL