簡體   English   中英

MySQL將多個結果查詢到單個值數組中

[英]MySQL Query multiple results into a single value Array

我從API獲得以下數組

$arrs =   array(
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    );

不幸的是,API需要此信息才能工作,每個請求只能有一個數組,因此我將此問題發送給開發人員:

如何列出多個項目,例如:

  $arrs=   array(
"items1" =>   array (
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
"items2" =>   array (
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
"items3" =>   array (
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
));

他們告訴我,目前不可能,因此,此數組的“重要”部分是“名稱”,當與單個項目一起使用時,沒有問題,我得到一個名稱,完成了,沒問題,但是如果我有多個名字怎么辦? 我可以發送多個請求,但是這將被視為洪水或類似...只是在一秒鍾左右的時間里成像300個名稱= 300個請求...確定我可以為每個請求暫停一下,但效率不高...

API會讀取類似這樣的內容...

"id"            => 654,
"names"         => "John", // <-- Lets look at this...
"description"   => "Fancy desc...",
"picture_url"   => "http"//domain.com/assets/user/654/av_654_dd.jpg";

因此,在輸出數組之前,我先進行一次SQL查詢,以顯示信息...

while ($names = $listnames->fetch_assoc()) {echo $names['names']. ', ';}

這將顯示... John,Karl,Lisa和Mark ...所以我希望將相同的結構放入數組中...問題是我不能在=>之后放置一會兒...那將是愚蠢的,它將無法正常工作...

"id"            => 654,
"names"         => "John, Karl, Lisa, Mark", // <-- Lets look at this...
"description"   => "Fancy desc...",
"picture_url"   => "http"//domain.com/assets/user/654/av_654_dd.jpg";

如果我只需要一個名稱,那么就沒有問題...但是在這種情況下,我需要將所有名稱都放在一個值中,因此,如何從WHILE循環中獲取結果...。以便可以使用結果在其他地方...

謝謝您抽出寶貴的時間。

while ($names = $listnames->fetch_assoc()) { 
     $name_array[] = $names['names'];
}

$arrs=array(
"items1" =>   array (
    "id"            => $ids,
    "names"         => implode(', ', $name_array),
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
);

我們不知道您如何訪問API。 如果這是REST API,則您只能執行開發人員計划的工作。 如果這是框架或其他庫,則可以對其進行編輯。

並且您應該收到如下結果:

$arrs =   array(
    array(
        "id"            => 1,
        "names"         => 'MyName',
        "description"   => 'MyDesc',
        "picture_url"   => 'MyPic',
    ),
    array(
        "id"            => 2,
        "names"         => 'MyName',
        "description"   => 'MyDesc',
        "picture_url"   => 'MyPic',
    ),
);

因此,如果您具有對SQL結果的完全訪問權限,以獲取所有結果的數據,則可以執行以下操作:$ results = array(); while($ row = $ listnames-> fetch_assoc()){$ results [] = $ row; }

如果要在輸入中設置多個可能的名稱,則開發人員應使用值數組進行開發。 對於名稱,他們只需要編碼:“ LIKE'” .implode(“',LIKE'”,$ names)。“'”“他們還可以添加'%'以允許更多值,例如'John'為'Johnny' 。

我認為我們需要更多信息才能真正為您提供幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM