[英]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.