2010-10-03 5 views
0

Я задал вопрос о SO через несколько часов назад.Вставка значения Codeigniter в массив

Как вставить массив имен полей из формы в базу данных SQL в Codeigniter.

<tr> 
<td><input type="text" name="user[0][name]" value=""></td> 
<td><input type="text" name="user[0][address]" value=""><br></td> 
<td><input type="text" name="user[0][age]" value=""></td> 
<td><input type="text" name="user[0][email]" value=""></td> 

<tr> 
<td><input type="text" name="user[1][name]" value=""></td> 
<td><input type="text" name="user[1][address]" value=""><br></td> 
<td><input type="text" name="user[1][age]" value=""></td> 
<td><input type="text" name="user[1][email]" value=""></td> 
</tr> 
..........//so on 

Это лучший ответ, который я получил

foreach($_POST['user'] as $user) 
{ 
    $this->db->insert('mytable', $user); 
} 

Теперь я хочу передать идентификатор генерируется из данных сеанса пользователя в этом массиве + несколько других значений, таких как ток время

Можно ли настроить вышеупомянутое решение?

The Previous Discussion Here

ответ

0
foreach($_POST['user'] as &$user) 
{ 
    $user['additional_data'] = $_SESSION['additional_data']; 
    $user['current_time'] = time(); 
    $this->db->insert('mytable', $user); 
} 

Обратите внимание на & я n & $ пользователь, который представляет собой проход по ссылке, который позволяет манипулировать массивом внутри цикла foreach. Если вы позже ссылаетесь на пользователя, не забудьте отключить ($ user), чтобы удалить ссылку на последний элемент массива $ _POST ['user'].

+0

Пятно на! Кажется, это заговор против меня. Я пробую все варианты, которые бросают на меня всевозможные ошибки, а затем кто-то @ SO работает в миллисекундах. :-) Благодаря. –

+0

На самом деле, глядя на него, вы можете игнорировать пропуск по ссылке (& before & $ user), и он все равно должен работать. Передача по ссылке применима только в том случае, если вы используете массив $ _POST ['user'] в другом месте кода. – Gazler

+0

Да, мне не нужно было использовать '&'. –

0

Я не знаю, если я что-то пропустил, но вы не можете просто удалить foreach и построить свой код, как это:

$var1 = $_POST['user_var1'] * 3 + 1/5; 
$this->db->insert('mytable', $var1); 
$var2 = gettime(); 
$this->db->insert('mytable', $var2); 
.... 

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

+0

поля формы генерируются динамически. Вот почему мне нужен цикл. –

Смежные вопросы