2017-01-22 67 views
0

我需要一些簡單的代碼幫助,我無法工作。Javascript - 通過數組顯示一些未定義的循環

問題是我想從一個MySQL數據庫中獲取一些數據到我的javascript中。我知道我需要通過php來取得它,我已經做到了,並把它放在一個數組中,我通過json_encode讀取,似乎獲得大多數數據,但有些返回undefined

代碼如下:

PHP

$sql_kunder = "SELECT * FROM Kunder"; 
$rows_kunder = array(); 
$result_kunder = $conn ->query($sql_kunder); 

while($row_kunder = $result_kunder->fetch_assoc()) 
    { 

    $rows_kunder[] = $row_kunder; 

    $ordre_key = $row_kunder["Kunde_id"]; 
    $sql_ordre = "SELECT * FROM Ordre WHERE Order_Key = $ordre_key"; 
    $result_ordre = $conn ->query($sql_ordre); 

    While($row_ordre = $result_ordre->fetch_assoc()) 
     { 
      $rows_kunder[] = $row_ordre; 
     } 

    } 

$phpArray_kunder = $rows_kunder; 

這應該放置2個數據庫到一個數組(和它)

JS

<script type="text/javascript"> 

var JsonKunder= <?php echo json_encode($phpArray_kunder); ?>; 

console.log(JsonKunder); 
for (var key in JsonKunder) 
    { 
    if (JsonKunder[key].Kunde_id = JsonKunder[key].Order_Key) 
     { 
      console.log(JsonKunder[key].Start_dato); 
      console.log(JsonKunder[key].End_dato); 
      console.log(JsonKunder[key].Ordre_nr); 
      console.log(JsonKunder[key].Ordre_id); 
      console.log(JsonKunder[key].Kunde_navn); 
      console.log(JsonKunder[key].Kunde_cvr); 
      console.log(JsonKunder[key].Kunde_id); 
     } 
    } 
</script> 

輸出

Array[6] 
0: Object 
Kunde_cvr: "25659191" 
Kunde_id: undefined 
Kunde_navn: "Karens bix" 
__proto__: Object  
1: Object 
End_dato: "1485561600" 
Kunde_id: "1" 
Order_Key: "1" 
Ordre_id: "1" 
Ordre_nr: "1111" 
Start_dato: "1484697600" 
__proto__: Object 
2: Object 
End_dato: "1486684800" 
Kunde_id: "1" 
Order_Key: "1" 
Ordre_id: "2" 
Ordre_nr: "1112" 
Start_dato: "1485993600" 
__proto__: Object 
3: Object 
Kunde_cvr: "65917878" 
Kunde_id: undefined 
Kunde_navn: "Bygmarked" 
__proto__: Object 
4: Object 
End_dato: "1485302400" 
Kunde_id: "2" 
Order_Key: "2" 
Ordre_id: "3" 
Ordre_nr: "2222" 
Start_dato: "1484870400" 
__proto__: Object 
5: Object 
End_dato: "1487980800" 
Kunde_id: "2" 
Order_Key: "2" 
Ordre_id: "4" 
Ordre_nr: "2223" 
Start_dato: "1486771200" 
__proto__: Object 
length: 6 
__proto__: Array[0] 

正如你所看到的,有一點信息放錯地方的。

例如,在對象0中,存在kunde_idUndefined,而在對象1中存在kunde:id = 1。真的不知道它爲什麼這樣做,不應該在那裏。

接下來的for循環吐出的console.log,其內容如下:

1484697600 testarray.php:30 <- from ordre (start dato) 
1485561600 testarray.php:31 <- from ordre (end dato) 
1111  testarray.php:32 <- from ordre (ordre nr) 
1   testarray.php:33 <- from ordre (ordre id) 
undefined testarray.php:34 <- Should be Kunde navn 
undefined testarray.php:35 <- should be kunde cvr 
1   testarray.php:36 <- From kunde id 

,然後循環的4倍,當時我只是它要循環兩次(在昆德數據庫的costumers數)

現在我不知道該怎麼做,我對js很陌生,這可能是一個簡單的解決方案......但我真的需要你們的一些指導。

+0

'='用於賦值,'=='(和'===')用於比較。 – Pointy

回答

2

你可以嘗試更新如果語句

if (JsonKunder[key].Kunde_id == JsonKunder[key].Order_Key) 

=是賦值。這不是比較運算符。

0

嗯,這是一個錯誤的embarssing,它怎麼竟然沒有解決我的問題(但確實讓我有點接近,我認爲)

什麼我的問題是,是,我似乎無法得到如果在我希望它運行到運行..

我的新代碼是這樣的

var i = 0 /* this is to see loops */ 

for (var key in JsonKunder) { 

    var k_id = JsonKunder[key].Kunde_id; 
    var o_key = JsonKunder[key].Order_Key; 

    i++ 

    console.log('Counts loops ' + i); 
    console.log('kunde id ' + k_id); 
    console.log('ordre key ' + o_key); 

    if(k_id == o_key) 
    { 
     console.log('in if '); 
    } 

} 

console.log('total loops ' +i); 

但它永遠不會返回任何東西的,如果循環,所以它不到風度做什麼我認爲它會...我知道我有6個obj。在我的陣列中,有4個定製者和2個消費者。我想我可以告訴If循環,當一個costumer(k_id)匹配Orders(o_key)時,它應該返回if循環中的信息X次,直到它們的k_id和o_key不再匹配。

但它不這樣做...所以我是一個noob,並不能縫隙來排序數組中的數據,就像我想要的那樣。

+0

我有一些睡眠後,有一段時間了..意識到我的愚蠢的錯誤,也就是說,該數組將永遠不會在同一個循環中獲得K_id和O_key,我已經建立了錯誤的數組形式的開始。 感謝您的幫助,雖然=和==和=== :)並抱歉浪費時間。 –