Выбор $ _POST с оператором foreach возвращает ошибку - PullRequest
1 голос
/ 24 июня 2011

Итак, у меня есть форма, которая может увеличиваться и уменьшаться в зависимости от того, что пользователь добавляет на страницу. Чтобы иметь возможность обрабатывать неизвестные сообщения, я настроил серию циклов foreach, которые проходят через каждый раздел таблицы и распределяют массив для каждого.

Форма представляет собой серию таблиц. Каждая таблица относится к одной категории, и каждая строка является отдельной ее частью. Каждый ряд состоит из 7 частей. Скрипт проходит по кругу и получает детали, необходимые для вставки каждого фрагмента столбца в базу данных.

На моем личном домашнем сервере код не возвращает ошибок и соответственно обновляет базу данных. На моем платном хостинге я получаю сообщение об ошибке. Ошибка появляется после первого foreach. Это входит в:

foreach($tablecontent as $key => $values)

Это ошибка: Предупреждение: неверный аргумент указан для foreach () в /home/sariep5/public_html/werchris.com/circuitcheck/submit.php в строке 14

Мой код ниже:

<td><input type="text" maxlength="3" name="esd[8][eng]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][q2]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][loa]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][wire]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][verify]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][assy]" value=""></td>
<td><input type="text" maxlength="3" name="esd[8][q4]" value=""></td>

Это HTML-часть формы. Разделы просто так создаются только с разными частями в названии. Таким образом, esd может быть любой другой категорией, 8 приращений, а остальные 7 одинаковы в каждом разделе.

foreach ($_POST as $table => $tablecontent) { 
    foreach($tablecontent as $key => $values) {
        foreach($values as $row => $value) {
            $value = strip_tags(htmlspecialchars($value));
            $row = strip_tags(htmlspecialchars($row));
            $key = strip_tags(htmlspecialchars($key));
            mysql_query("UPDATE tablecontent SET ".$row." = '$value'
                         WHERE id='$key'");
        }
    } 
}

Спасибо!

1 Ответ

0 голосов
/ 24 июня 2011

Это просто foreach($tablecontent as $key => $values) ошибка там означает, что $tablecontent не массив

Предупреждение: неверный аргумент для foreach () указан в /home/sariep5/public_html/werchris.com/circuitcheck/submit.php в строке 14

Попробуйте var_dump($tablecontent); там

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