Обновление таблицы «многие ко многим» с формой PHP и HTML - PullRequest
0 голосов
/ 05 марта 2020

В моей базе данных есть следующие 3 таблицы

  • мтм (многие-ко-многим)
  • пользователи
  • фильмы
users          mtm (XR)          movies
=========      ===========       ===========
id  (PK)       userid (FK)       id   (PK)
name           movieid (FK)      name
tel                              desc
...                              ...

Я пытаюсь добиться:

  1. Обновление таблицы «многие ко многим» для зарегистрированного пользователя (через PHP и HTML форма на той же странице )
    • форма HTML содержит <select multiple="multiple">, из которого можно выбрать несколько mov ie <option> s.
    • когда пользователь выбирает фильмы, которые ему нравятся, и нажимает «Сохранить изменения», сценарий PHP должен связать выбранные фильмы с зарегистрированным пользователем ИД пользователя в таблице «mtm».

<?php
if(isset($_POST['upinfo']))
    {
    $bio=$_POST['bio'];
    $birthdate=$_POST['birthdate'];
    $country=$_POST['country'];
    $province=$_POST['province'];
    $city=$_POST['city'];
    $zipcode=$_POST['zipcode'];
    $addressline=$_POST['addressline'];
    $phonenum=$_POST['phonenum'];
    $website=$_POST['website'];
    $languages = $_POST['languages'];
    $favmusic = $_POST['favmusic'];
    $favmovies = $_POST['favmovies'];
    $id3=$_POST['id3'];

    $sql="UPDATE users SET bio=(:bio), birthdate=(:birthdate), country=(:country), province=(:province), city=(:city), zipcode=(:zipcode), addressline=(:addressline), phonenum=(:phonenum), website=(:website), languages=(:languages), favmusic=(:favmusic), favmovies=(:favmovies) WHERE id=(:id3)";

    $query = $dbh->prepare($sql);
    $query-> bindParam(':bio', $bio, PDO::PARAM_STR);
    $query-> bindParam(':birthdate', $birthdate, PDO::PARAM_STR);
    $query-> bindParam(':country', $country, PDO::PARAM_STR);
    $query-> bindParam(':province', $province, PDO::PARAM_STR);
    $query-> bindParam(':city', $city, PDO::PARAM_STR);
    $query-> bindParam(':zipcode', $zipcode, PDO::PARAM_STR);
    $query-> bindParam(':addressline', $addressline, PDO::PARAM_STR);
    $query-> bindParam(':phonenum', $phonenum, PDO::PARAM_STR);
    $query-> bindParam(':website', $website, PDO::PARAM_STR);
    $query-> bindParam(':languages', $languages, PDO::PARAM_STR);
    $query-> bindParam(':favmusic', $favmusic, PDO::PARAM_STR);
    $query-> bindParam(':favmovies', $favmovies, PDO::PARAM_STR);
    $query-> bindParam(':id3', $id3, PDO::PARAM_STR);
    $query->execute();
    $sucupinfo="Information Updated Successfully";
    } 
else{
    $errupinfo="Couldn't update your info!";
    }
?>


После того, как пользователь отправляет или обновляет страницу с формой HTML, форма должна отображать эти mov ie <option s как selected для зарегистрированного пользователя

<form method="post">
    <div class="row">           

        <div class="col-12">
            <div class="form-group">
                <label for="moviesselect2">Favourite movies</label>
                <select name="favmovies" class="form-control" id="moviesselect2" multiple="multiple">
                    <option value="The Dark Knight">The Dark Knight</option>
                    <option value="Harry Potter">Harry Potter</option>
                    <option value="Airplane!">Airplane!</option>
                    <option value="Pearl Harbour">Perl Harbour</option>
                    <option value="Spider Man">Spider Man</option>
                    <option value="Iron Man">Iron Man</option>
                    <option value="Avatar">Avatar</option>
                </select>
            </div>
        </div>

        <input type="hidden" name="id3" class="form-control" required value="<?php echo htmlentities($result->id);?>">

        <div class="col-12">
            <button type="submit" name="upinfo" class="btn btn-primary">Save changes</button>
        </div>

    </div>
</form>


Но я не знаю как, поэтому я прошу вас привести четкий пример или указать я в правильном направлении

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...