Zaškrtávací políčka se zobrazí pouze tehdy, když jsou zaškrtnuta. Pokud tedy zaškrtávací políčko není zaškrtnuté, nezobrazí se v $_POST
. Také byste obecně neměli dávat žádné hodnoty zaškrtávacím políčkům. Místo toho použijte názvy k rozlišení mezi nimi.
V databázi obvykle reprezentuji zaškrtávací políčka s tinyinty a ukládám 1 pro zaškrtnuté a 0 pro nezaškrtnuté.
// 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;
Všimněte si také, že html vyžaduje, aby ID byla jedinečná. Nemůžete tedy mít více prvků se stejným ID. A měli byste dezinfikovat své vstupy, abyste zabránili vkládání SQL. Použijte mysql_real_escape_string()
na uživatelských vstupech, které jsou v databázi.
Aktualizovat
Hlavním problémem je, že v dotazu chybí ')
' na posledním řádku. Dotaz by měl vypadat takto
$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);
Všimněte si koncovky ')
“ na posledním řádku dotazu. Všimněte si také, že vytvoření dotazu takto, v proměnné, vám umožní vytvořit výstup vytvořeného dotazu, takže můžete vidět, co přesně je odesláno do MySQL, a také můžete svůj dotaz otestovat v jiném prostředí (tj. v phpmyadmin nebo jakékoli jiné administraci databáze nástroj).