обновить несколько строк после вставки в codeigniter - PullRequest
0 голосов
/ 27 мая 2019

После вставки я хочу обновить поле с ($id.'mytext'), где в дБ это поле пусто для всех строк.

table name: peca
columns: 
id -autoincrement
A -varchar user insert
CB -varchar auto insert with update
MODEL WILL RETURN ALL ROWS WHERE CB=empty 

function model1() {
        $this->db->select('*');
        $this->db->from('peca');
        $this->db->where('CB', '');
        //$this->db->where('id', $fileid); 
        $query = $this->db->get();
        if ($query) {
            return $query->result();
        } else {
            return false;
        }
    }
MODEL WILL update in db where CB=empty 
function model2($dados = NULL) {
        if ($dados !== NULL) {
        //  extract($dados);
         $this->db->where('CB', '');
            $this->db->update('peca', $dados);
            return true;
        } else {
            return false;
        }
    }
CONTROLLER

 $this->load->model('model_peca');
            $resultadocadastropeca = $this->model_peca->model1($id);
            $data = 'id' => $id;
            $appointment = array('codigoean' => $data.'.PECA.');    
            $appointment = $this->model_peca->model2($appointment);

НАЧАТЬ СТОЛ Предыдущие значения вставлены из импорта, поэтому CB может быть сгенерирован только после того, как id существует

id|CB      |
22|        |
31|        |

РЕЗУЛЬТАТЫ Я меняю CB на .PECA. во всех строках, где CB = пусто, но $ id для каждой строки не проходит

id|CB    |
22|.PECA.|
31|.PECA.|

ОЖИДАЕТСЯ

id|CB      |
22|22.PECA.|
31|31.PECA.|

1 Ответ

0 голосов
/ 28 мая 2019

Я до сих пор не до конца понимаю, что вы хотите сделать, но если вы хотите получить что-то, где столбец пуст или равен нулю:

$this->db->where("WHERE yourColumn IS NULL OR yourColumn = ''");


Какв соответствии с вашим измененным вопросом это должно работать:

$this->db->select('id');
$this->db->where('CB', '');
$q = $this->db->get('peca');
if ($q->num_rows() == 0) {
   die('nothing to do here');
}
$res = $q->result();
foreach ($res as $item) {
     $data[] = array('id' => $item->id, 'CB' => $item->id . '.PECA.');
}
$this->db->update_batch('peca', $data, 'id');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...