Как динамически создавать столбцы с помощью codeigniter - PullRequest
0 голосов
/ 05 апреля 2020
public function addDynFields()
{
    $checkedfileds = $_POST['CheckedFileds'];
    $qry = "ALTER TABLE `pm1asset_dynamic_fields` ";
    //echo $qry;die;
    foreach ($checkedfileds as $key => $value) 
    {
        $dynflds = strtolower($value);
        $dynclmns = 'add_to'.'_'.$dynflds;
        if ($value == 'Title') 
        {
             $qry .= "ADD COLUMN `".$dynclmns."` int(11) NOT NULL";
        } 
        else 
        {
            $qry .= "ADD COLUMN `".$dynclmns."` varchar(255) NOT NULL";
        }

        // use (;) for the last row, otherwise use (,)
        if ($key === key($checkedfileds)) 
        {
            $qry .= ",";
        } 
        else 
        {
            $qry .= ";";
        }
   }
   end($checkedfileds);
   $this->db->query($qry);
}

Здесь у меня есть некоторый код для динамического создания столбцов на основе отмеченного флажка с использованием codeigniter, я пробовал этот метод, он работает нормально, когда я отмечаю два флажка, но для одного флажка он не работает, когда я нажимаю на оба флажок только это добавляет в таблицу .. я не знаю почему. Кто-нибудь может мне помочь, пожалуйста. Любая помощь может быть оценена.

1 Ответ

0 голосов
/ 05 апреля 2020

Проблемы с этой строкой.

if ($key === key($checkedfileds){

Я не знаю точную причину, я протестировал несколько способов здесь .

Мое решение

$n = count($checkedfileds);
$i = 0;
foreach ($checkedfileds as $key => $value) {

//and

if(++$i === $n) {
//if ($key === key($checkedfileds)) {
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...