Одна кнопка отправки. Два стола. При нажатии кнопки «Отправить» создается маркер, а также его значения lng и lat. Эта информация добавлена в таблицу маркеров.
Идентификатор маркера — это FK в таблице представлений. Документация для LAST_INSERT_ID();
говорит: Сгенерированный идентификатор поддерживается на сервере для каждого подключения. Я думаю, что каждое выполнение сбрасывает это, но не уверен.
В настоящее время он вставляет данные в таблицу маркеров, но ничего не вносит в таблицу представлений. У меня есть проверка, чтобы убедиться, что все поля имеют содержимое, если не это недопустимая форма и отображается ошибка, то же самое для соединения с БД, но в данный момент она выводит меня на страницу успеха.
Этот SQL-запрос прямо в базу данных MySQL дает желаемый результат:
INSERT INTO markers VALUES (NULL, 53.645792, -1.785035);
INSERT INTO submissions (submission_id, marker_id, title, info, image)
VALUES (1, LAST_INSERT_ID(), "this is a title", "info", "image");
Мой код в моих файлах, однако, не …
Модель:
function insertSubmissionMarker($conn,$lat,$lng)
{
$query="INSERT INTO markers VALUES (NULL, :lat, :lng)";
$stmt=$conn->prepare($query);
$stmt->bindValue(':lat', $lat);
$stmt->bindValue(':lng', $lng);
$affected_rows = $stmt->execute();
if($affected_rows==1)
{
return true;
}else{
return false;
}
}
function insertSubmissionContent($conn,$marker_id,$title,$info,$image)
{
$query="INSERT INTO submissions VALUES (NULL, LAST_INSERT_ID(), :title, :info, :fileToUpload)";
$stmt=$conn->prepare($query);
$stmt->bindValue(':title', $title);
$stmt->bindValue(':info', $info);
$stmt->bindValue(':fileToUpload', $image);
$affected_rows = $stmt->execute();
if($affected_rows==1)
{
return true;
}else{
return false;
}
}
function addToMap ($conn,$lat,$lng,$title,$info,$image){
$x = insertSubmissionMarker ($conn,$lat,$lng);
$y = insertSubmissionContent ($conn,$title,$info,$image);
if($x && $y = true)
{
return true;
}else{
return false;
}
}
контроллер:
$conn=getConn();
$success=addToMap($conn,$title,$info,$lat,$lng,$image);
$conn=NULL; //close the connection
if($success)
{
include("views/add-map-confirm-view.php");
}else
{
$errorMsgs[]="Problem inserting data into the database";
include("views/add-map-error-view.php");
}
Задача ещё не решена.
Других решений пока нет …