#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>';
}