2016-03-28 16 views
0

Olmazsa, bu ayarlanmadığında Veritabanımdaki bir Değeri Günceller.Mysql güncellemesinde iken mysql güncelleştirmesiyle birlikte Javascript

Bu Kodu: i item.assetid sahiptir 2 "Öğeler" den koymak

items.forEach(function(item,i,arr){ 
    mysqlConnection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \'' + item.market_hash_name + '\'', function (err, row, fields) {}); 
}); 

: has tüm iki öğeden daha (gibi Öğe 1 sahiptir = 123.123 ve Öğeleri 2 sahiptir = 987987) Hiçbir şey, 123123 veya 987987 gibi aynı Assetid değerini elde eder.

Nasıl yapabilirim ki, her öğeyi ONE AssetId verir. Bundan önce

, sütun "assetid" Ben senin WHERE fıkra çok fazla satır eşleşen olduğunu tahmin ediyorum orada

+0

Look -' Varlıkkimliği Bu dizideki her öğe için aynı olmalıdır. Muhtemelen problem bu hattın akış yönüdür. – pherris

+0

@pherris öğe dizisinde 2 farklı öğe içeren 2 öğe var. Eğer "console.log (item.assetid)" yaparsam 2 farklı kimliğim olur. Ama veritabanında o 2 öğe için 1 varlık tanımladı ... – Scholli

cevap

0

yanı yoktur. Bu kullandığınız, ancak node-mysql kullanıyorsanız neyi kütüphane net değil çıktısını alabilirsiniz geri arama işlevi güncellenen satır sayısı: sizin `item` dizinin en

connection.query('UPDATE `SkinBank` SET `AssetID`=\'' + item.assetid + '\', `Status`=\'market\' WHERE `Status`=\'open\' AND `Tradeoffer` = \'' + offer.id + '\' AND `SkinName` = \'' + item.market_hash_name + '\'', function (err, result) { 
    if (err) throw err; 

    console.log('changed ' + result.changedRows + ' rows'); 
}) 

https://github.com/felixge/node-mysql#getting-the-number-of-changed-rows

+0

diyor ki: " 0 satır değiştirildi, 2 satır değişti". 1'den 1'i değiştirmesini nasıl sağlayabilirim? – Scholli

+0

Sorun, "WHERE" yan tümcesinde güncellemek için doğru satırları eşleştirmiyorsunuz. Muhtemelen sütunun kimliğini güncelleme ifadesine eklemeniz gerekir. – pherris

+0

Ama nasıl? Sütunlarım var: ID, ItemName, Assetid - ItemName aynı olabilir, Assetid her Öğe için güncellenmelidir. AssetId farklı ve farklı olmalı. AssetID bu foreach'da güncellendi. Kimlik 1'dir ve otomatik olarak sayma – Scholli