Вытягивание элементов массива $ _POST в последовательные переменные с общим префиксом - PullRequest
0 голосов
/ 04 февраля 2010

У меня есть массив $ _POST, который получается в результате выбора (в данном случае) 3 строк из отображаемой таблицы HTML, в которой у каждой строки есть флажок. Идентификаторы являются уникальными идентификаторами для каждой строки.

Array
(
    [checkbox] => Array
        (
            [0] => 001403166
            [1] => 001407509
            [2] => 001407541
        )
)

Я хочу собрать идентификаторы в переменные, чтобы я мог вернуться назад и извлечь полные строки из mysql для обработки (например, удалить и т. Д.) - что-то вроде ~

$var1 = 001403166
$var2 = 001407509
$var3 = 001407541

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

Ответы [ 2 ]

5 голосов
/ 04 февраля 2010

Функция extract должна выполнять почти то, что вы просите:

int extract  ( array $var_array  [, int $extract_type = EXTR_OVERWRITE  [, string $prefix  ]] )

Импорт переменных из массива в текущая таблица символов.


Полагаю, что-то вроде этого должно сработать:

extract($_POST['checkbox'], EXTR_PREFIX_ALL , 'var');

Единственное, что вы получите переменные с именами $var_0, $var_1, $var_2:

  • считая от 0, а не от 1, так как ключи в $_POST['checkbox'] начинаются с 0.
  • и с _ между $var и числом.


Примечание: перед использованием extract, убедитесь, что $_POST['checkbox'] содержит только «чистые» данные!

1 голос
/ 04 февраля 2010

Вы можете также рассмотреть возможность внедрения этого массива в одну строку и использования собственной функции базы данных IN(), чтобы сократить выполнение одного запроса для каждой отдельной строки.

$uniqueIDs = array(1111,1222,1333);
$idString  = implode(",",$uniqueIDs);

$query = "SELECT id, col1, col2 
          FROM tableName
          WHERE id IN ({$idString})";

Этот запрос будет выглядеть так:

SELECT id, col1, col2 
FROM tableName 
WHERE id IN (1111,1222,1333)

Выбор строк с идентификатором, найденным в этом списке.

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