我需要一些简单的代码帮助我才能开始工作。
问题是我想从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很新,这可能是一个简单的修复......但我真的需要你们的一些指导。
答案 0 :(得分:2)
您可以尝试将 if 语句更新为
if (JsonKunder[key].Kunde_id == JsonKunder[key].Order_Key)
=是一项任务。它不是比较运算符。
答案 1 :(得分:0)
那是一个令人尴尬的错误,它怎么能解决我的问题(但是我认为这让我更接近了)
我的问题是,当我期望它运行时,我似乎无法运行IF ..
我的新代码就像这样
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 );
但它永远不会在if循环中返回任何东西,所以它不会做我想的那样......我知道我有6个obj。在我的阵列中,4个ordres和2个客户。我想我可以告诉If循环,当一个客户(k_id)匹配Orders(o_key)时,它应该在if循环中返回X次信息,直到它们k_id和o_key不再匹配。
但它没有这样做......所以我是一个菜鸟,不能像我想要的那样对数组中的数据进行排序。