Я пытаюсь заставить выбранный множественный (выпадающий) список принимать несколько значений и вставлять их в поле в таблице базы данных mysql, но значения по какой-то причине не помещаются в поле. Я исследовал это в течение нескольких часов, но ни один из других вопросов не относится именно к моей ситуации, потому что я динамически извлекаю значения из другой таблицы в базе данных mysql. То, как код прямо сейчас, я не получаю никакой ошибки, но ничего не заносится в базу данных.
Я пытался использовать такие выражения, как $_GET
, foreach
, if else
, implode
и т. Д., Но я не должен понимать синтаксис правильно, потому что кажется, что ничего не работает. Я также пытался извлечь скобки [ ]
из строк: name='genretype[]
и $genretype = mysqli_real_escape_string($dbc, $_POST['genretype[]']);
, но при этом я получаю эту ошибку:
mysqli_real_escape_string () ожидает, что параметр 2 будет строкой, а массив задан
Может кто-нибудь, пожалуйста, взгляните на это и дайте мне знать, если вы видите, что я делаю неправильно? (Для вашего удобства я включил только код, который имеет непосредственное отношение к моей проблеме. Мой другой выпадающий список, в котором не выбрано несколько, работает отлично.)
Верхняя часть кода php:
// Check for a genre.
if (empty($_POST['genretype'])) {
$errors[] = 'You forgot to enter a genre.';
} else {
$genretype = mysqli_real_escape_string($dbc, $_POST['genretype[]']);
}
if (empty($errors)) { // If everything's OK.
// Add the movie to the database.
// Check for existing record.
$query = "SELECT id FROM dvd WHERE title='$title'";
$result = mysqli_query($dbc, $query);
if (mysqli_num_rows($result) == 0) { // if there is no such movie title
$query = "INSERT INTO dvd (title, numavail, categoryname, genretype)
VALUES ('$title', '$numavail', '$categoryname', '$genretype')";
// Make the query.
$result = mysqli_query($dbc, $query);
if ($result) { // If it ran OK.
echo "<p><b>Success! The new movie has been added.</b></p>";
echo ('<p><div style="margin-top:30px;">');
echo ('<span style="float:left;">');
echo ('<FORM METHOD="LINK" ACTION="../dvd/index.php"><INPUT TYPE="submit" VALUE="Back to DVDs" STYLE="margin:0px 15px 0px 0px;"></form></span></div></p>');
echo ('<br style="clear:both;"></br>');
exit();
} else { // If it did not run OK.
$errors[] = 'The movie could not be added due to a system error. We apologize for any inconvenience.'; // Public message.
$errors[] = mysqli_error($dbc); // MySQL error message.
}
Форма части кода:
<?php
$ddlquery2 = "SELECT genretype FROM genre ORDER BY genretype ASC";
$ddlresult2 = mysqli_query($dbc, $ddlquery2) or die("Bad SQL: $ddlquery");
echo 'Genre (select all that apply): <select type="text" class="dropdown" name="genretype[]" multiple="multiple" size="5">';
while($ddlrow2=mysqli_fetch_array($ddlresult2, MYSQLI_ASSOC)){
echo "<option value='".$ddlrow2['genretype']."'>" . $ddlrow2['genretype'] . "</option>";
}
echo "</select>";
?>