Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue JS组件中MySQL的嵌套JSON求和_Mysql_Json_Vuejs2 - Fatal编程技术网

Vue JS组件中MySQL的嵌套JSON求和

Vue JS组件中MySQL的嵌套JSON求和,mysql,json,vuejs2,Mysql,Json,Vuejs2,这是JSON格式的MySQL 8的内容 MySQL字段“ticket_json”是json类型 [{ "id": 1, "ticket_json": [{ "id": 1570801381559, "qty": 2, "name": "Cognac", "price": 1000 }, { "id": 1570801382391, "qty": 1, "name

这是JSON格式的MySQL 8的内容

MySQL字段“ticket_json”是json类型

[{
    "id": 1,
    "ticket_json": [{
        "id": 1570801381559,
        "qty": 2,
        "name": "Cognac",
        "price": 1000
    }, {
        "id": 1570801382391,
        "qty": 1,
        "name": "Jäger Bomb",
        "price": 900
    }, {
        "id": 1570801386549,
        "qty": 1,
        "name": "VodK Ananas",
        "price": 900
    }],
    "created_at": "2019-10-11 15:43:08",
    "updated_at": "2019-10-11 15:43:08"
    }, {
    "id": 2,
    "ticket_json": [{
        "id": 1570830556370,
        "qty": 1,
        "name": "Peace & Love",
        "price": 600
    }, {
        "id": 1570830560279,
        "qty": 1,
        "name": "Tonic",
        "price": 600
    }],
    "created_at": "2019-10-11 23:49:22",
    "updated_at": "2019-10-11 23:49:22"
    }
}]
我检索存储的数据,方法如下:

getTickets() {
    fetch('/api/path)
    .then((response) => {
        return response.json()
    })
    .then((data) => {
        this.tickets = data;
    })
    .catch((error) => {
        console.log(error);
    })
}
我显示如下数据:

<div v-for="ticket in tickets">
    {{ totalTicket }}
</div>
在循环中,我将显示每个对象的总和(totalTicket)(数量*价格)

问题,它在所有循环中显示相同的第一个结果


我对Javascript不是很熟悉。如果您能帮助我,谢谢您

totalTicket
中循环查看数组的ALL元素,并计算ALL元素的总数

您还定义了两次
var键
(两个用于循环),并定义了
subItemsTotal
在第二个循环外和循环内,还定义了
itemsTotal
在第一个循环外和第二个循环内

您必须创建一个方法,该方法接受一个值并计算总数

Html
你能在上面发布一个数据示例吗,因为MySQL 8支持简单的JSON到记录解析,并且可以在上面运行SUM..像这样?将
返回项移至总计在forThanks Max之外,但当我这样做时,总是显示最后一个循环的结果:(
    computed: {
    totalTicket() {
        var itemsTotal = 0;
        for(var key in this.tickets) {
            var item = this.tickets[key];

            var subitems = item.ticket_json;
            var subItemsTotal = 0;
            for(var key in subitems) {
                var subitem = subitems[key];
                var subItemsTotal = subItemsTotal + ((subitem.la_qtt * subitem.le_tarif)/100);
            };
            var itemsTotal =+ subItemsTotal;
            console.log(itemsTotal);
            return itemsTotal;
        };
    }
},
<div v-for="ticket in tickets" :key="ticket.id">
  For Ticket id {{ticket.id}} the Total is {{ totalSingle(ticket) }}</div>
</div>
methods: {
    totalSingle(ticket) {
      var itemsTotal = 0;
      var subitems = ticket.ticket_json;
      var subItemsTotal = 0;
      for (var key in subitems) {
        var subitem = subitems[key];
        subItemsTotal = subItemsTotal + (subitem.qty * subitem.price) / 100;
      }
      itemsTotal += subItemsTotal;
      return itemsTotal;
    }
}