Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用PHP编码之前编辑JSON数组_Php_Mysql_Json_Api_Mysqli - Fatal编程技术网

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

如何在使用PHP编码之前编辑JSON数组,php,mysql,json,api,mysqli,Php,Mysql,Json,Api,Mysqli,在这里,我想编辑产品图像的JSON数组,我想在其中发送图像名称(来自数据库)和图像路径(静态的,不来自数据库) 我的json数组在哪里 图像=(图像路径+图像名称) 我就是这样做的 $query="SELECT * FROM products WHERE product_type='$product' "; $result = mysqli_query($conn,$query); $dbdata = array(); if ($result) { wh

在这里,我想编辑产品图像的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);
      }
在这里,我想在图像名称之前添加图像路径

我试过这个

"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"
不需要输出,图像名称也是最后一个产品的图像名称。
如何实现这一点?

只需在添加到阵列之前修改数据:

$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);
}
$query=“从产品中选择*,其中产品类型为“$product”;
$result=mysqli\u查询($conn,$query);
$dbdata=array();
如果($结果){
而($row=$result->fetch_array()){

$row['image']=“xyzabc.com/admin/upload/product_img/”$row['image'];/这里有一个建议。在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));

这里有一个值得信赖的地方可以阅读准备好的声明:

谢谢你,菲利佩,你的解决方案对我有效,谢谢你的一些旁注。我必须完成准备好的查询。