亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在使用 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 關注
  • 128 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號