Pola wyboru są publikowane tylko wtedy, gdy są zaznaczone. Więc jeśli pole wyboru nie jest zaznaczone, nie pojawi się w $_POST
. Ponadto generalnie nie należy podawać żadnych wartości polam wyboru. Zamiast tego używaj nazw, aby je rozróżnić.
W bazie danych zwykle reprezentuję pola wyboru z malutkimi intami i przechowuję 1 dla zaznaczonego i 0 dla niezaznaczonego.
// 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;
Pamiętaj też, że html wymaga, aby identyfikatory były unikalne. Nie możesz więc mieć wielu elementów o tym samym identyfikatorze. I powinieneś oczyścić swoje dane wejściowe, aby zapobiec wstrzykiwaniu sql. Użyj mysql_real_escape_string()
na danych wprowadzonych przez użytkownika, które trafiają do bazy danych.
Aktualizacja
Głównym problemem jest to, że w zapytaniu brakuje „)
' w ostatnim wierszu. Zapytanie powinno wyglądać tak
$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);
Zwróć uwagę na zamykający ')
' w ostatnim wierszu zapytania. Zauważ równieżże utworzenie zapytania w ten sposób, w zmiennej, pozwala na wyświetlenie utworzonego zapytania, dzięki czemu możesz zobaczyć, co dokładnie jest wysyłane do MySQL, a także możesz przetestować swoje zapytanie w innym środowisku (np. w phpmyadminie lub innej administracji bazy danych narzędzie).