sql >> Base de Datos >  >> RDS >> Mysql

Almacén de matriz multidimensional CodeIgniter en una sola columna de la base de datos mysql

Como dice el mensaje, no tienes la clave $data['view_count'] pero tienes $data[2017][6][10]['count'] valor. Supongo que esas fechas se cambian dinámicamente, por lo que debe obtener el valor de la matriz interna mediante la clave count .Si su matriz siempre tiene claves similares, es decir, $data[year][month][day][count] , puede usar el código (bit modificado) de este responder para obtener ese valor clave. Pon tu modelo

private function getCount($arr, $search)
{
    $iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($arr)); 
    foreach($iterator as $key => $value) {
        if($search == $key && $value !== '') {
            return $value;
        }
    }
    return false;
}

Luego, en su primer método, use el valor filtrado a través de esta función:

public function setView($data)
{
    $count = $this->getCount($data, 'count');

    if ($count !== false) {
        $setData = $this->db->where('short', 'honwl')->update('ci_links', $count);
        return $setData;
    }
    return false;
}