Флажок для добавления нескольких значений MySQL

У меня есть HTML-страница, где есть форма и сохраняет результаты в MySQL. Проблема в том, что флажок сохраняет только одно значение в таблице MySQL. Что мне нужно сделать, чтобы сохранить несколько значений в столбце БД?

HTML-код:

<input type="checkbox" name="rating[]" value="Homepage">Homepage
<input type="checkbox" name="rating[]" value="Facilities">Facilities
<input type="checkbox" name="rating[]" value="reservation">Reservation
<input type="checkbox" name="rating[]" value="Contact">Contact

PHP-код:

if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$sql="INSERT INTO db (firstname, lastname, password, email, address, postcode,   country, phonenumber, rating, subscribe)
VALUES ('$firstname', '$lastname', '$password', '$email', '$address', '$postcode','$country', '$phonenumber', '$rating', '$subscribe')";

if (!mysqli_query($con,$sql)) {
die('Error: ' . mysqli_error($con));
}
echo " Success!";

-1

Решение

Я думаю, у вас есть три варианта.

Первый.

Создайте еще одну таблицу и свяжите их с внешним ключом.

Во-вторых.

Сделайте, чтобы флажки имели значение и делали битовую маскировку.

Ex)

<input type="checkbox" name="something[]" value="1">blah
<input type="checkbox" name="something[]" value="2">blah2
<input type="checkbox" name="something[]" value="4">blah3

Если кто-то проверяет «бла» и «бла3», сделайте их 5. (1 & 4)

Как это:

for($i=0; $i<count($rating); $i++)
{
$rating_value &= $rating[$i];
}

И сохранить его в базе данных в целое число.

В третьих.

Объедините их в одну строку и сохраните в базе данных в виде строки (например, VARCHAR).

1

Другие решения

Если $rating это попытка массива лопаются ()

$sql="INSERT INTO db (firstname, lastname, password, email, address, postcode,   country, phonenumber, rating, subscribe)
VALUES ('$firstname', '$lastname', '$password', '$email', '$address', '$postcode','$country', '$phonenumber', '".implode(',',$rating)."', '$subscribe')";
0

Я настоятельно рекомендую вам прочитать следующие материалы:

Но у вас пока нет проблем с PHP или HTML. Вы пытаетесь сохранить информацию в базе данных, в которой нет места для этого.

Вам нужно как минимум две дополнительные таблицы:

  • rating мастер стол с:

    • rating_id (автоинкремент или произвольный код)
    • rating_value (например, «Плохо», «Средне», «Хорошо» …)

    … где вы храните доступные рейтинги.

  • db_rating стол с:

    • db_id (dbпервичный ключ)
    • rating_id (ratingпервичный ключ)

    … где вы храните отношения.

… и они удаляют ваш текущий db.rating колонка.

-1
По вопросам рекламы [email protected]