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

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

在 php 中創建動態 JSON 數組

在 php 中創建動態 JSON 數組

PHP
汪汪一只貓 2023-10-15 15:06:44
我想像這樣動態創建一個 JSON:{"storie":[{"story_id":"111","username":"Username1","profile_photo":"boh.png","copertina":"ok.png","num_elements":"1","rating":"4.5"},{"story_id":"222","username":"Username2","profile_photo":"hello.png","copertina":"hi.png","num_elements":"2","rating":"3.5"}]}我正在嘗試從 MySQL 數據庫獲取值,并且我能夠做到這一點:$response = array();$sql = mysqli_query($conn, "SELECT * FROM storie WHERE userid IN (SELECT following FROM follow WHERE follower='$userid')");while($row = mysqli_fetch_assoc($sql)){  $usern = getuserinfo($row['userid'], "username", $conn);  $prof_photo = getuserinfo($row['userid'], "profile_photo", $conn);  $idsto=$row['storia_id'];  $elem = mysqli_query($conn, "SELECT COUNT(*) AS da_vedere FROM `storie_images` WHERE storia_id='$idsto' AND imm_id NOT IN (SELECT imm_id FROM image_views WHERE viewer='$userid')");  while($ok = mysqli_fetch_assoc($elem)){    $num_elem = $ok['da_vedere'];  }  //here I put the line that add the array to the json array:}但問題是這一行,它應該創建一個新數組并將其放入 json 中:$response['storie'] = [array("story_id" => $idsto, "username" => $usern, "profile_photo" => $prof_photo, "copertina" => $row['copertina'], "num_elements" => $num_elem, "rating" => "4.5")];當只有一條記錄時它有效,但如果有更多記錄它就不起作用。有人能幫我嗎?
查看完整描述

2 回答

?
拉風的咖菲貓

TA貢獻1995條經驗 獲得超2個贊

只需替換:

$response['storie'] = [array("story_id" => $idsto, "username" => $usern, "profile_photo" => $prof_photo, "copertina" => $row['copertina'], "num_elements" => $num_elem, "rating" => "4.5")];

$response['storie'][] = array("story_id" => $idsto, "username" => $usern, "profile_photo" => $prof_photo, "copertina" => $row['copertina'], "num_elements" => $num_elem, "rating" => "4.5");


查看完整回答
反對 回復 2023-10-15
?
呼啦一陣風

TA貢獻1802條經驗 獲得超6個贊

那是因為您在 while 內使用 $response['story'] 來解決此問題:


1-創建另一個名為 result 的數組,然后在 while 中使用它


$response = array();

$result = array ()

while (....)

{

//here I put the line that add the array to the json array:

$result[] = array("story_id" => $idsto, "username" => $usern, "profile_photo" => $prof_photo, "copertina" => $row['copertina'], "num_elements" => $num_elem, "rating" => "4.5");

2-然后在循環外使用響應數組:


$response['storie'] = $result;

你的代碼將是這樣的:


   $response = array();

   $result = array ()


    $sql = mysqli_query($conn, "SELECT * FROM storie WHERE userid IN (SELECT following FROM follow WHERE follower='$userid')");

    while($row = mysqli_fetch_assoc($sql)){

    $usern = getuserinfo($row['userid'], "username", $conn);

    $prof_photo = getuserinfo($row['userid'], "profile_photo", $conn);

    $idsto=$row['storia_id'];

    $elem = mysqli_query($conn, "SELECT COUNT(*) AS da_vedere FROM `storie_images` WHERE storia_id='$idsto' AND imm_id NOT IN (SELECT imm_id FROM image_views WHERE viewer='$userid')");

    while($ok = mysqli_fetch_assoc($elem)){

    $num_elem = $ok['da_vedere'];

    }

    //here I put the line that add the array to the json array:

    $result[] = array("story_id" => $idsto, "username" => $usern, "profile_photo" => $prof_photo, "copertina" => $row['copertina'], "num_elements" => $num_elem, "rating" => "4.5");

    }


   $response['storie'] = $result;


查看完整回答
反對 回復 2023-10-15
  • 2 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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