为了账号安全,请及时绑定邮箱和手机立即绑定

如何在使用 PHP 编码之前编辑 JSON 数组

如何在使用 PHP 编码之前编辑 JSON 数组

PHP
宝慕林4294392 2023-03-26 13:50:54
在这里我想编辑产品图像的 JSON 数组,我想在我的 json 数组中发送图像名称(来自数据库)和图像路径(静态而不是来自数据库)图片=(图片路径+图片名称)我这样做$query="SELECT * FROM products WHERE product_type='$product' ";$result = mysqli_query($conn,$query);$dbdata = array();      if ($result)       {        while ( $row = $result->fetch_array())  {        $dbdata[]=$row;        }         echo json_encode($dbdata);      }输出是"aprice": "90",    "7": "85",    "oprice": "85",    "8": "0",    "offer": "0",    "9": "133259dac801eaeeb37b3876b3966ee4.jpg",    "image": "133259dac801eaeeb37b3876b3966ee4.jpg"在这里我想在图像名称之前添加图像路径我试过这个$query="SELECT * FROM products WHERE product_type='$product' ";$result = mysqli_query($conn,$query);$dbdata = array();      if ($result)       {        while ( $row = $result->fetch_array())  {        $image="xyzabc.com/admin/upload/product_img/".$row['image'];        $dbdata[]=$row;        foreach($dbdata as $key => $value)        {          $dbdata[$key]['image'] = $image;        }        $mainarr = array('status' =>"200" , );        }         echo json_encode($dbdata);      }以上代码的输出"7": "85",    "oprice": "85",    "8": "0",    "offer": "0",    "9": "133259dac801eaeeb37b3876b3966ee4.jpg",    "image": "xyzabc.com/admin/upload/product_img/cf6e65aa87538f218c29cf3033954c31.jpg"并且输出也不是预期的图像名称是最后一个产品的图像名称。如何做到这一点?
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

这是一个建议。在您的 sql 中使用CONCAT(),以便您可以直接将整个结果集转储到您的json_encode()调用中。不需要写循环。


未经测试的代码:


$query = "SELECT aprice,

                 oprice,

                 offer,

                 CONCAT('xyzabc.com/admin/upload/product_img/', image)

          FROM products

          WHERE product_type = ?"

$stmt = $conn->prepare($query);

$stmt->bind_param("s", $product);

$stmt->execute();

$result = $stmt->get_result();

echo json_encode($result->fetch_all(MYSQLI_ASSOC));


查看完整回答
反对 回复 2023-03-26
?
白衣非少年

TA贡献1155条经验 获得超0个赞

只需在添加到数组之前修改您的数据:


$query="SELECT * FROM products WHERE product_type='$product' ";

$result = mysqli_query($conn,$query);

$dbdata = array();

if ($result) {

    while ( $row = $result->fetch_array())  {

        $row['image'] = "xyzabc.com/admin/upload/product_img/".$row['image']; // <--HERE

        $dbdata[] = $row;

    }

    echo json_encode($dbdata);

}

一些旁注:

  1. 最好选择要发送的列,因为您可以修改表格并破坏另一侧。所以,在这种情况下,最好使用SELECT aprice, oprice, image, ... FROM Products ...

  2. 您的查询可能容易受到 SQL 注入攻击。

查看完整回答
反对 回复 2023-03-26
  • 2 回答
  • 0 关注
  • 96 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信