Как преобразовать массив из формы в базу данных, используя PHP и Mysql - PullRequest
0 голосов
/ 05 декабря 2018

У меня возникли проблемы с выяснением, как получить массив, полученный из поля ввода.Итак, что работает, и я получаю свой массив, показывающий, на каких из них я выбрал, моя проблема заключается в том, что когда я добавляю $ selagegroup в SQL INSERT, он показывает только последний проверенный, а не все проверенные.Я все еще немного новичок в SQL и PHP, поэтому любая помощь будет принята с благодарностью. Вот мой HTML и PHP код

<label for="agegroup" id="agegroup"> What ages do you interact with?
<input type="checkbox" name="age[]" class="ages" id="kids" value="kids"> Ages 0-10
        <input type="checkbox" name="age[]" class="ages" id="teens" value="teens"> Ages 11-19
        <input type="checkbox" name="age[]" class="ages" id="twentys" value="twenties"> Ages 20-29
        <input type="checkbox" name="age[]" class="ages" id="thirtys" value="thirties"> Ages 30-39
        <input type="checkbox" name="age[]" class="ages" id="fourtys" value="fourties"> Ages 40-49
        <input type="checkbox" name="age[]" class="ages" id="fiftys" value="fifties"> Ages 50-59
        <input type="checkbox" name="age[]" class="ages" id="sixtyplus" value="sixtyplus"> Ages 60+
</label>

. Вот PHP, который я использовал, чтобы получить показанный массив:

if (isset($_POST['age']) && $_POST['age'] !== '') {

    $vagegroup = $_POST['age'];

    foreach($_POST['age'] as $selagegroup){
        echo $selagegroup.'<br>';
    }
} else {
    $vagegroup = '';
} 

Я также пытался добавить цикл foreach к вставке sql, но он просто показывает "", "", "", для каждого поля в флажке, и я не знаю, что делать, любая помощь будет принята с благодарностью, дажекогда я просто отображаю массив, он работает и показывает все, что проверено.если кто-то может объяснить и помочь, спасибо:)

EDITED ::: Я забыл добавить это, мой оператор вставки в целом имеет около 30 различных полей, так как это длинная форма, но вот какя сделал для возрастной группы, и он показывает только последнее выбранное значение

$sql_insert = "INSERT INTO influencers (inf_ages) VALUES ('$selagegroup')";

1 Ответ

0 голосов
/ 05 декабря 2018

Если вы ожидаете массив ответов, вы можете сериализовать или json_encode данные, прежде чем сохранить их в базе данных, при условии, что столбец БД имеет как минимум VARCHAR приличной длины

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

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