Hộp kiểm chỉ được đăng khi chúng được đánh dấu. Vì vậy, nếu hộp kiểm không được đánh dấu, nó sẽ không xuất hiện trong $_POST
. Ngoài ra, bạn thường không nên cung cấp bất kỳ giá trị nào cho các hộp kiểm. Thay vào đó, hãy sử dụng tên để phân biệt giữa chúng.
Trong cơ sở dữ liệu, tôi thường đại diện cho các hộp kiểm bằng tinyints và lưu trữ 1 để chọn và 0 để bỏ chọn.
// 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;
Cũng lưu ý rằng html yêu cầu id phải là duy nhất. Vì vậy, bạn không thể có nhiều phần tử có cùng một id. Và bạn nên vệ sinh đầu vào của mình để ngăn chặn việc tiêm sql. Sử dụng mysql_real_escape_string()
trên đầu vào của người dùng trong cơ sở dữ liệu.
Cập nhật
Vấn đề chính là truy vấn thiếu ')
'ở dòng cuối cùng. Truy vấn sẽ giống như
$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);
Lưu ý đóng ')
'trên dòng cuối cùng của truy vấn. Cũng lưu ý rằng việc tạo truy vấn như thế này, trong một biến, cho phép bạn xuất truy vấn đã tạo để bạn có thể xem chính xác những gì được gửi đến MySQL và bạn cũng có thể kiểm tra truy vấn của mình trong một môi trường khác (tức là trong phpmyadmin hoặc bất kỳ quản trị cơ sở dữ liệu nào khác công cụ).