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

Selezione della casella di controllo Aggiornamento PHP/MySQL nel database

Non hai nulla qui che imposta i valori su zero. Le caselle che non sono selezionate saranno semplicemente assenti dall'array $_POST.

Dovrai creare un elenco separato dei nomi di tutte le caselle di controllo e scorrere quelle, confrontandole con l'array $_POST.

Modifica: Non avrei scritto alcun codice, ma:

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

Nota che non abbiamo davvero bisogno di mysql_real_escape_string qui poiché sappiamo che tutti i valori id sono sicuri, ma è una buona pratica nel caso qualcuno arrivi più tardi e modifichi con noncuranza l'array $ allids.

Modifica di nuovo: Supponiamo di non sapere quali ID cercare.

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