все.
Я знаю, что это очень легальный предмет, но я повсюду искал и не могу решить проблему.
У меня есть ряд флажков на моей веб-странице и вам нужно вставить значения в базу данных.
Для того, что я прочитал, это должно быть сделано следующим образом:
<tr> <td class="titulofila">Saló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á</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 или любом другом администрировании базы данных инструмент).