Afkrydsningsfelter bliver kun slået op, når de er afkrydset. Så hvis afkrydsningsfeltet ikke er markeret, vises det ikke i $_POST
. Du bør generelt heller ikke give nogen værdier til afkrydsningsfelter. Brug i stedet navne til at skelne mellem dem.
I databasen repræsenterer jeg normalt afkrydsningsfelter med tinyints og lagre 1 for markeret og 0 for umarkeret.
// 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;
Bemærk også, at html kræver, at id'er er unikke. Så du kan ikke have flere elementer med samme id. Og du bør rense dine input for at forhindre sql-injektion. Brug mysql_real_escape_string()
på brugerinput, der går i databasen.
Opdater
Hovedproblemet er, at forespørgslen mangler en ')
' på sidste linje. Forespørgslen skal se sådan ud
$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);
Bemærk den afsluttende ')
' på den sidste linje i forespørgslen. Bemærk også, at oprettelse af forespørgslen som denne, i en variabel, giver dig mulighed for at udlæse den oprettede forespørgsel, så du kan se, hvad der præcist sendes til MySQL, og du kan også teste din forespørgsel i et andet miljø (f.eks. i phpmyadmin eller enhver anden databaseadministration værktøj).