Гиперссылка GROUP_Concat

#php #mysql #sql

#php #mysql #sql

Вопрос:

Итак, у меня в базе данных есть таблица с именем "Clients" и другая таблица с именем "Pets" . Они связаны ассоциативной таблицей, что означает, что у "Clients" может быть два «питомца».

Я использую этот SQL-запрос для отображения множества домашних животных для одного клиента :

 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'
  

И я использую этот цикл foreach :

 foreach ($files as $file) :
echo $file['address'];
endforeach
  

Моя проблема заключается в следующем :

 <strong>Pets : </strong> <a href="?profilePet=<?= $file['idPets']; ?>"> <strong><?= $file['petsNames']; ?> </strong> </a>
  

Я использую эту строку кода для печати питомцев клиента, но я хочу, чтобы у них были гиперссылки, что означает, что я мог бы нажимать на разных питомцев. Проблема в том, что GROUP_Concat связал всех питомцев, что означает, что когда я нажимаю на одного питомца, я всегда перехожу к первому написанному.

введите описание изображения здесь

Как вы можете видеть, домашнее животное «Пенелопа» и «W» связаны символом « GROUP_COncat" . Итак, когда я нажимаю на нее, она отправляет меня к первому питомцу (Пенелопе).

Комментарии:

1. Какую СУБД вы используете? (Этот запрос зависит от конкретного продукта.)

2. @jarlh Я использую PHPMYADMIN, InnoDB

Ответ №1:

Вы можете разделить свои имена домашних животных на запятую и добавить a теги к каждому из них :

 $pets = explode(',',$file['petsNames']);
foreach($pets as $pet){
echo '<a>'.$pet.'</a>';
}