Множественная вставка MySQL из данных PHP динамически получается из ajax - PullRequest
0 голосов
/ 05 мая 2018

Я пытаюсь вставить кратные значения, которые я получаю из формы ajax. Примерно так:

Array
(
    [0] => Hashtag1
    [1] => Hashtag2
    [2] => Hashtag3
    [3] => Hashtag4
)

Тогда я получаю фото в запросе и идентификатор от пользователя-владельца этого фото.

У меня есть 3 таблицы, которые будут получать вставки, и их много. Потому что мне нужно вставить один раз в таблицу фотографий, то есть фотографию, которую я вставляю, и идентификатор владельца пользователя, и сохранить идентификатор этой вставки для следующих шагов. После этого мне нужно вставить все хэштеги, по одному для каждого значения из массива, в этом случае будет что-то вроде этого:

Insert into hash_tag (`hash_tag_name`) values ("hashtag1"),("hashtag2"), etc.

Мне нужно сохранить все id этих строк, потому что теперь я буду вставлять в таблицу photo_tiene_hashtag id_photo для каждого хэштега, который я создал.

Это будет что-то вроде:

Insert into photo_tiene_hashtag(`id_photo`,`id_hash_tag`) values (idPhotoThatIShouldHaveSaved, idHashtagThatIShouldHaveSaved1), (idPhotoThatIShouldHaveSaved, idHashtagThatIShouldHaveSaved2),
(idPhotoThatIShouldHaveSaved, idHashtagThatIShouldHaveSaved3),
etc.

enter image description here

Не знаю, как решить эту проблему, возможно, я должен сделать beginTransaction () в php и начать делать небольшой запрос, не знаю, все это должно быть в транзакции, потому что мне нужно быть уверенным, что все шаги пройти правильно.

Извините за мой английский.

Ура!

1 Ответ

0 голосов
/ 05 мая 2018

Что вам нужно сделать, это использовать Javascript =>

var form = document.getElementById("#imageform");
затем создайте новый объект данных формы в javascript и отправьте его в файл php, используя ajax, либо javascript AJAX, либо используя Jquery.
var formdata = new FormData(form);
отправьте это используя
http.open("post", "insert.php", true);
http.send(formdata);
в вашем php файле используйте =>
if(isset($_FILES['user_image'])){
echo var_dump($_FILES['user_image']['name']);
}
здесь можно перейти к загрузке файлов изображений на локальный сервер и вставке имени и идентификатора изображения в базу данных; для идентификатора вы можете использовать $ _SESSION ['username'] или передать какой-либо идентификатор в сценарии java-script , и опубликовать его вместе с текущим запросом, как это. =>

http.open("post", "insert.php?user_id=" + user_id, true);
http.send(formdata);

...