Javascript - 循环显示一些未定义的数组

标签 javascript mysql arrays database

我需要一些关于简单代码的帮助,但我无法正常工作。

问题是我想从 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_id Undefined,而在对象 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 次,而我只想循环两次(kunde 数据库中的客户数量)

现在我不知道该怎么办,我对 js 很陌生,这可能是一个简单的修复......但我真的需要你们的一些指导。

最佳答案

您可以尝试将if语句更新为

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

= 是一个赋值。它不是比较运算符。

关于Javascript - 循环显示一些未定义的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41792615/

相关文章:

javascript - Vue JS 嵌套循环搜索不返回结果

javascript - 有没有一种好方法可以确保在使用对象的代码之前创建对象?

c++ - 在 C++ 中处理 int 数组

javascript - 如何使用 Star Wars SWAPI API 从服务器搜索端点

javascript - 在C3.js上,使用JSON数据,如何更改每个单独条的颜色?

mysql - 如何运行动态查询数组的事务

php - MySQL 中的消息表,获取每个线程的最后一条消息

php - 使用 real_escape_string 时用户访问被拒绝

arrays - PostgreSQL 将列从 varchar 数组更改为 pair(varchar, integer) 数组

c++ - MPI 中的发送和接收数组