Mysql
 sql >> Base de données >  >> RDS >> Mysql

Magasin de tableau multidimensionnel CodeIgniter dans la colonne unique de la base de données mysql

Comme le dit le message, vous n'avez pas la clé $data['view_count'] mais vous avez $data[2017][6][10]['count'] évaluer. Je suppose que ces dates sont modifiées dynamiquement, vous devez donc obtenir la valeur du tableau interne par clé count .Si votre tableau a toujours des clés similaires, c'est-à-dire $data[year][month][day][count] , vous pouvez utiliser le code (un peu modifié) de ce répondre pour obtenir cette valeur de clé. Mettez votre modèle

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

Ensuite, dans votre première méthode, utilisez la valeur filtrée via cette fonction :

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;
}