Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получение переменных $_POST, неизвестное количество с неиз. именами 
V
    Опции темы
Vreden
Дата 21.7.2007, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Idiotic Admin
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 12.7.2006

Репутация: нет
Всего: 1



Задача состоит в следующем: одна страница передаёт неизвестное количество переменных (сколько выберет пользователь). Имена переменных это ID строк в таблице БД. Необходимо получить все эти переменные, но как это сделать, если не знаешь имени переменной? Эти имена есть в столбце таблицы. Но проверять на существование переменной делая выборку этих ID из огромной таблицы очень затруднительно и займет много времени, да и нагрузка на сервер... Есть у кого какие соображения на этот счет. И вообще возможно ли это?


--------------------
Чё? Как? ©
PM MAIL WWW   Вверх
Golda
Дата 21.7.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 3
Всего: 42



Код

foreach ($_POST as $key => $val) {
  ...
}


Лучше передавать имена этих переменных с определенным префиксом. Тогда

Код

function filter($val) {
    return (strpos($val, 'prefix') === 0);
}

$indexes = array_intersect_key($_POST, array_flip(array_filter(array_keys($_POST), 'filter')));


Кстати, может у кого есть идея, как упростить эту конструкцию?

Ну а проще всего, передавать такие перменные индексами одного массива.

Код

...
<input name='indexes[124]'/>
<input name='indexes[158]'/>
...


и ловить их все в PHP в $_POST['indexes']

Это сообщение отредактировал(а) Golda - 21.7.2007, 15:04


--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
Vreden
Дата 21.7.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Idiotic Admin
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 12.7.2006

Репутация: нет
Всего: 1



А как достать все значения элементов массива indexes после получения, если имена самих элементов неизвестны?


--------------------
Чё? Как? ©
PM MAIL WWW   Вверх
Golda
Дата 21.7.2007, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 26.3.2007
Где: Ариель, Израиль

Репутация: 3
Всего: 42



Код

foreach ($_POST['indexes'] as $key => $val) {
  ...
}



--------------------
"For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics
PM MAIL   Вверх
Vreden
Дата 21.7.2007, 19:50 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Idiotic Admin
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 12.7.2006

Репутация: нет
Всего: 1



Какие значения принимают переменные $key  и $val?


--------------------
Чё? Как? ©
PM MAIL WWW   Вверх
GZep
Дата 21.7.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


участник Винграда
***


Профиль
Группа: Завсегдатай
Сообщений: 1528
Регистрация: 7.7.2006
Где: Москва

Репутация: нет
Всего: 32



Цитата(Vreden @  21.7.2007,  19:50 Найти цитируемый пост)
Какие значения принимают переменные $key  и $val? 

$key - будет содержать имя ключа
$val - значение этого ключа

Такие простые вещи надо в доках смотреть.


--------------------
user posted imageuser posted image
PM MAIL WWW ICQ Skype GTalk   Вверх
Vreden
Дата 22.7.2007, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Idiotic Admin
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 12.7.2006

Репутация: нет
Всего: 1



спасибо всем  smile 

Это сообщение отредактировал(а) Vreden - 22.7.2007, 11:44


--------------------
Чё? Как? ©
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

Внимание: данный раздел предназначен для решения сложных, нестандартных задач.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Для профи | Следующая тема »


 




[ Время генерации скрипта: 0.0672 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.