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

Inserimento di valori di checkbox nel database MySQL con PHP

Le caselle di controllo vengono pubblicate solo quando sono contrassegnate. Quindi se la casella di controllo non è spuntata, non apparirà in $_POST . Inoltre, generalmente non dovresti dare alcun valore alle caselle di controllo. Usa invece i nomi per distinguerli.

Nel database di solito rappresento le caselle di controllo con tinyint e memorizzo 1 per selezionato e 0 per deselezionato.

// If your checkbox name is foo, this will convert it
// into a value that can be stored in the database
$foo = isset($_POST['foo']) ? 1 : 0;

Nota anche che html richiede che gli ID siano univoci. Quindi non puoi avere più elementi con lo stesso ID. E dovresti disinfettare i tuoi input per prevenire l'iniezione di sql. Usa mysql_real_escape_string() sugli input dell'utente che vanno nel database.

Aggiorna

Il problema principale è che nella query manca un ') ' nell'ultima riga. La query dovrebbe assomigliare a

$query = "INSERT INTO markers (ciudad,
                        zona,address,name,
                        telefono,email,piso,
                        tipo,erasmus,nhabitaciones,
                        plazas,equipHabita,nbanos,
                        salon,cocina,electrodomesticos,
                        garaje,internet,calefaccion,
                        sexo,precio,superficie,otros,
                        fecha,lat,lng)
    VALUES ('{$_POST['ciudad']}','{$_POST['zona']}',
            '{$_POST['address']}','{$_POST['name']}','{$_POST['telefono']}',
            '{$_POST['email']}','{$_POST['piso']}','{$_POST['tipo']}',
            '{$_POST['erasmus']}','{$_POST['nhabitaciones']}',
            '{$_POST['plazas']}','{$equipHabitaF}',
            '{$_POST['nbanos']}','{$equipSalonF}',
            '{$equipCocinaF}','{$equipElectroF}','{$_POST['garaje']}',
            '{$_POST['internet']}','{$_POST['calefaccion']}',
            '{$_POST['sexo']}','{$_POST['precio']}',
            '{$_POST['superficie']}','{$_POST['otrosF']}',
            '{$_POST['fecha']}','{$_POST['lat']}',
            '{$_POST['lng']}')";
mysql_query($query, $link);

Nota la chiusura ') ' nell'ultima riga della query. Nota anche che la creazione della query in questo modo, in una variabile, ti consente di generare la query creata in modo da poter vedere cosa viene inviato esattamente a MySQL e puoi anche testare la tua query in un ambiente diverso (ad esempio in phpmyadmin o qualsiasi altra amministrazione di database strumento).