sql >> Base de Datos >  >> RDS >> Mysql

Insertar valores de casilla de verificación en la base de datos MySQL con PHP

Las casillas de verificación solo se publican cuando están marcadas. Entonces, si la casilla de verificación no está marcada, no aparecerá en $_POST . Además, generalmente no debe dar ningún valor a las casillas de verificación. En su lugar, use nombres para distinguirlos.

En la base de datos, generalmente represento casillas de verificación con tinyints y almaceno 1 para marcar y 0 para no marcar.

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

También tenga en cuenta que html requiere que las identificaciones sean únicas. Por lo tanto, no puede tener varios elementos con la misma identificación. Y debe desinfectar sus entradas para evitar la inyección de sql. Usa mysql_real_escape_string() en las entradas del usuario que van en la base de datos.

Actualizar

El problema principal es que a la consulta le falta un ') ' en la última línea. La consulta debería verse como

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

Tenga en cuenta el cierre ') ' en la última línea de la consulta. También tenga en cuenta que crear la consulta de esta manera, en una variable, le permite generar la consulta creada para que pueda ver qué se envía exactamente a MySQL y también puede probar su consulta en un entorno diferente (es decir, en phpmyadmin o cualquier otra administración de base de datos herramienta).