爆炸到数组(key-> value)

时间:2015-09-02 15:07:17

标签: php mysql arrays

嘿伙计我正在寻找一个小问题的解决方案,PHP似乎运行正常,我看不到SQL查询的任何问题,任何人都可以看到我的代码明显错误?我真的被困在这里了。

"项目"的内容行类似于以下内容:

30->0,31->0,32->0,36->0,33->10,29->0,35->0,6->0,5->0,8->0,9->0,7->0,14->0,15->0,10->0,17->0

我只需要将它们分解为数组中的数组和foreach值,然后使用适当的"键"在页面上打印。我看过这里:explode() into $key=>$value pair并且没有得出结论 - 这是完整的代码,如果有人可以帮助我,告诉我我在做什么或者甚至指出我正确的方向我真的很开心。

$id = $_GET['order'];
if(!is_number($id)){
    exit();
}
$sql = "SELECT * FROM ORDERS WHERE id='$id'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
    $dataString = $row["items"];
    foreach (explode(",", $dataString) as $cLine) {
    list ($cKey, $cValue) = explode('->', $cLine, 2);
        $itemarray[$cKey] = $cValue;
    }

    foreach($itemarray as $key => $value) {
        echo "<br/>".$value." x ".$key;
    }
    }
} else {
    echo "0 results";
}

感谢。

3 个答案:

答案 0 :(得分:1)

我还无法发表评论,所以我发布了一个答案。以下代码似乎工作正常:

$dataString = "30->0,31->0,32->0,36->0,33->10,29->0,35->0,6->0,5->0,8->0,9->0,7->0,14->0,15->0,10->0,17->0";
foreach (explode(",", $dataString) as $cLine) {
  list ($cKey, $cValue) = explode('->', $cLine, 2);
  $itemarray[$cKey] = $cValue;

  foreach($itemarray as $key => $value) {
    echo "<br/>".$value." x ".$key;
  }
}

所以我最好的选择是查询返回的数据不是预期的。

答案 1 :(得分:1)

当你得到数据时,这应该更容易:

std::shared_ptr<MyObj> ptr(CreateMyObj(), std::ptr_fun(FreeMyObj));

答案 2 :(得分:0)

原来我的代码查询都很完美。问题出在这里:

if(!is_number($id)){
    exit();
}

我的?订单= 55未被识别为数字或滥用is_number功能。

感谢您的帮助。