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

Insertion de valeurs de case à cocher dans la base de données MySQL avec PHP

Les cases à cocher ne sont affichées que lorsqu'elles sont cochées. Donc si la case n'est pas cochée, elle n'apparaîtra pas dans $_POST . Aussi, vous ne devriez généralement pas donner de valeurs aux cases à cocher. Utilisez plutôt des noms pour les distinguer.

Dans la base de données, je représente généralement les cases à cocher avec des minuscules et stocke 1 pour coché et 0 pour non coché.

// 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;

Notez également que html nécessite que les identifiants soient uniques. Vous ne pouvez donc pas avoir plusieurs éléments avec le même identifiant. Et vous devez désinfecter vos entrées pour éviter l'injection SQL. Utilisez mysql_real_escape_string() sur les entrées utilisateur qui vont dans la base de données.

Mettre à jour

Le problème principal est qu'il manque à la requête un ') ' à la dernière ligne. La requête doit ressembler à

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

Notez la fermeture ') ' sur la dernière ligne de la requête. Notez également que la création de la requête comme celle-ci, dans une variable, vous permet de générer la requête créée afin que vous puissiez voir exactement ce qui est envoyé à MySQL et vous pouvez également tester votre requête dans un environnement différent (c'est-à-dire dans phpmyadmin ou toute autre administration de base de données outil).