Codeigniter вставка данных в 2 таблицы с динамически меняющимися столбцами - PullRequest
0 голосов
/ 08 декабря 2011

Привет, друзья! У меня есть данные поста, подобные этому

Array
(
    [m_categoryid] => 81
    [subcat_id_for_cat] => 87
    [title] => test
    [body] => test
    [adtype] => 2
    [1] => iphone
    [2] => xxx
    [7] => yes
    [submit] => Submit ads

где верхние 5 полей являются фиксированными полями, идущими в одну таблицу table_1, однако последние 3 поля являются динамическими полями, которые увеличивают или уменьшают поля и переходят в другую таблицу table_2

Не могу понять, как решить эту проблему

Ответы [ 3 ]

0 голосов
/ 08 декабря 2011

или если вы не можете изменить массив, динамические данные всегда получают числовой ключ

$arr = array
(
    "m_categoryid" => "81",
    "0" => "iphone",
    "2" => "xxx",
    "submit" => "Submit ads"
);

foreach ($arr as $key=>$row)
{
    if(is_numeric($key))
    {
echo "insert table_2\n";
    } else {
echo "insert table_1\n";
    }
}
0 голосов
/ 08 декабря 2011

Вы можете создать 2 массива.В первый вы кладете первые 5 элементов, во второй - остальные.После вы можете назначить правильный массив за столом.

$input = Array (  
"m_categoryid" => 81,  
"subcat_id_for_cat" => 87,  
"title" => "test",  
"body" => "test",  
"adtype" => 2,  
"iphone" => 1,
"submit" => "Submit ads" 
);

$c = count($input); 
$length = $c - 5; 
$first = array_slice($input, 0, 5,true); 
$last = array_slice($input, 5,$length, true);
$headfirst = array();
$valuefirst = array(); 
foreach($first as $key => $value){
    $headfirst[] = $key;
    $valuefirst[] = $value;
}

$this->table->set_heading($headfirst);
$this->table->add_row($valuefirst);
echo $this->table->generate();

$last = array_slice($input, 5,$length, true);
$headlast = array();
$valuelast = array(); 
foreach($last as $key => $value){
    $headlast[] = $key;
    $valuelast[] = $value;
}
$this->table->set_heading($headlast);
$this->table->add_row($valuelast);
echo $this->table->generate();

Вот и все

0 голосов
/ 08 декабря 2011

попробуйте использовать многомерный массив

Array
(
    [m_categoryid] => 81
    [subcat_id_for_cat] => 87
    [title] => test
    [body] => test
    [adtype] => 2
    [dynamic] => array(
       [1] => iphone
       [2] => xxx
       [7] => yes
    )
    [submit] => Submit ads
)

затем

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