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

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

Foreach 循環但打印一次具有多個值

Foreach 循環但打印一次具有多個值

PHP
牧羊人nacy 2024-01-19 10:46:39
所以我的數據庫中有一個名為 的表"Clients",另一個名為"Pets". 它們通過關聯表鏈接,這意味著一個"Clients"可以有兩個"Pets"。我使用FOREACH循環來顯示我的客戶和寵物,但是當客戶有很多寵物時,我的 foreach 循環會打印所有內容,與客戶有寵物的數量一樣??催@里這是我的foreach循環foreach ($files as $file) :echo $file['address'];endforeach我的問題是我想讓除"pets"( <?= $file['petName']; ?>) 之外的所有內容正常顯示,并看到客戶有 2 只寵物。像這樣 :感謝您的幫助 !我的 SQL 查詢SELECT *FROM clientsLEFT JOIN owners ON owners.idClients = clients.idClientsLEFT JOIN pets ON pets.idPets = owners.idPetsLEFT JOIN clientsdocs ON clientsdocs.idClients = clients.idClientsWHERE clients.idClients='$id'
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

完美,這就是我想要的,非常感謝!


這里是修改后的代碼:


SELECT *, 

GROUP_CONCAT(DISTINCT petName ORDER BY petName) AS petsNames

FROM clients

LEFT JOIN owners ON owners.idClients = clients.idClients

LEFT JOIN pets ON pets.idPets = owners.idPets

LEFT JOIN clientsdocs ON clientsdocs.idClients = clients.idClients

WHERE clients.idClients='$id'


查看完整回答
反對 回復 2024-01-19
?
慕尼黑的夜晚無繁華

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

您可以更改查詢,例如:


SELECT

    clients.*, 

    GROUP_CONCAT(petName) AS petsNames # implode pets names s into 1 string

FROM clients

LEFT JOIN owners ON owners.idClients = clients.idClients

LEFT JOIN pets ON pets.idPets = owners.idPets

LEFT JOIN clientsdocs ON clientsdocs.idClients = clients.idClients

GROUP BY clients.idClients # this is group all client's data in single row

WHERE clients.idClients='$id';

這不是解決方案,但可以為您提供最佳解決方案的想法。


查看完整回答
反對 回復 2024-01-19
  • 2 回答
  • 0 關注
  • 153 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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