Mysql
 sql >> Base de données >  >> RDS >> Mysql

Sélection de la case à cocher PHP/MySQL Update vers la base de données

Vous n'avez rien ici qui fixe les valeurs à zéro. Les cases non cochées seront simplement absentes du tableau $_POST.

Vous devrez créer une liste séparée des noms de toutes les cases à cocher et parcourir celles-ci, en les comparant au tableau $_POST.

Modifier : Je n'allais pas écrire de code, mais :

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

Notez que nous n'avons pas vraiment besoin de mysql_real_escape_string ici puisque nous savons que toutes les valeurs d'id sont sûres, mais c'est une bonne pratique au cas où quelqu'un viendrait plus tard et modifierait négligemment le tableau $allids.

Modifier à nouveau : Supposons que nous ne sachions pas quels identifiants rechercher.

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