Вставка значений флажка в базу данных MySQL с помощью PHP

все.

Я знаю, что это очень легальный предмет, но я повсюду искал и не могу решить проблему.

У меня есть ряд флажков на моей веб-странице и вам нужно вставить значения в базу данных.

Для того, что я прочитал, это должно быть сделано следующим образом:

<tr> <td class="titulofila">Sal&oacute;n Completo con: </td> <td> <table width="100%"><tr><td> <label> <input name="equipSalon[]" type="checkbox" id="equipSalon[]" value="mesa" /> mesas </label> </td><td> <label> <input name="equipSalon[]" type="checkbox" id="equipSalon[]" value="sillas" /> sillas </label> </td><td> <label> <input name="equipSalon[]" type="checkbox" id="equipSalon[]" value="sofa" /> sof&aacute;</label> </td></tr></table> </td> </tr> 

И затем, в скрипте PHP, который кнопка отправки принимает:

  $equipSalonF=mysql_real_escape_string(implode(',', $_POST['equipSalon'])); mysql_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']}'",$link); 

У меня больше этих флажков, и это не работает, просто говорит: «У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с« по строке 21 »,

Если кто-то хочет посмотреть полные файлы index.html и php, вы можете найти их здесь: http://paste.ideaslabs.com/show/8qEHDnsZdr форма начинается с строки 147. И файл PHP здесь: http: //paste.ideaslabs.com/show/IJFLSHM7Ka

Заранее спасибо.

Флажки указаны только в том случае, если они отмечены галочкой. Поэтому, если флажок не отмечен, он не появится в $_POST . Также вы не должны указывать значения для флажков. Вместо этого используйте имена, чтобы различать их.

В базе данных я обычно представляю флажки с tinyints и сохраняю 1 для отмеченных и 0 для unchecked.

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

Также обратите внимание, что html требует, чтобы идентификаторы были уникальными. Таким образом, вы не можете иметь несколько элементов с одним и тем же идентификатором. И вы должны дезинфицировать свои входы для предотвращения внедрения sql. Используйте mysql_real_escape_string() для пользовательских входов, которые mysql_real_escape_string() в базу данных.

Обновить

Основная проблема заключается в том, что в последней строке отсутствует запрос « ) ». Запрос должен выглядеть так:

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

Обратите внимание на закрытие ' ) ' в последней строке запроса. Также обратите внимание, что создание такого запроса в переменной позволяет вывести созданный запрос, чтобы вы могли видеть, что именно отправлено в MySQL, и вы также можете протестировать свой запрос в другой среде (то есть в phpmyadmin или любом другом администрировании базы данных инструмент).