如何将多个数组发送到标头

时间:2015-01-23 12:09:51

标签: php

所以我现在已经有了这个代码,但是我的标题已经成功了。我希望它发送:

hyllaArray的第一个值为' check ='面前的

hyllaArray的第二个值,' check2 ='面前,

第三个值为' check3 ='所以最多检查10'。  这种类型的打印是否可行,还是需要使用其他功能?

$DB = new mysqli("localhost", "root", "", "book1");
$result = mysqli_query($DB, "SELECT * FROM booking WHERE itemID IN('$itemID1','$itemID2','$itemID3','$itemID4','$itemID5','$itemID6','$itemID7','$itemID8','$itemID9','$itemID10')");
$hyllaArray = array();
$itemArray = array();
while($row = mysqli_fetch_array($result)){
    $hyllaArray[] = $row['Hyllplacering'];
    $itemArray[] = $row['itemID'];
}
    header('location: /webapp/admin.php?check=' . implode('&check2=', $hyllaArray) .'&itemid=' . implode('&itemid2=', $itemArray));
}

2 个答案:

答案 0 :(得分:1)

试试这个:

$DB = new mysqli("localhost", "root", "", "book1");
$result = mysqli_query($DB, "SELECT * FROM booking WHERE itemID IN('$itemID1','$itemID2','$itemID3','$itemID4','$itemID5','$itemID6','$itemID7','$itemID8','$itemID9','$itemID10')");
$hyllaArray = array();
$itemArray = array();
$i=1
while($row = mysqli_fetch_array($result)){
    $hyllaArray[] = "check".$i."=".$row['Hyllplacering'];
    $itemArray[] = "itemid".$i."=".$row['itemID'];
    $i++
}
    header('location: /webapp/admin.php?' . implode('&', $hyllaArray) .'&' . implode('&', $itemArray));
}

答案 1 :(得分:0)

$ hylllaArray 是一个PHP本机对象,您无法直接将其附加到URL。 要将本机对象传递到另一个地方,首先需要将其转换为String,此过程称为序列化

有两种最常用的序列化方法:XML和JSON。我建议使用JSON,因为它会生成更少的字节,并且更容易阅读。

在PHP中,您可以通过调用json_encode()

将对象序列化为JSON

在您将生成的JSON放入网址之前,您必须urlencode(),此编码算法主要用于编码符号,如' =','& && #39;等等,所以你的JSON不会弄乱网址。

我的建议:

我认为您最好使用POST来发送大量数据,它会使您的网址更加清晰。