2017-09-26 11 views
1

Je veux obtenir des données via php de ma base de données SQL:Comment utiliser GROUP_CONCAT avec plusieurs valeurs?

GROUP_CONCAT(DISTINCT cat.name SEPARATOR ",") AS cats 

cela me donne une liste:

sam, john, joe 

je reçois d'autres données comme ceci:

GROUP_CONCAT(DISTINCT cat.id SEPARATOR ",") AS cat_ids 

ici j'obtiens le résultat

1,2,3 

Maintenant, voici mon problème. Je veux combiner ces valeurs pour obtenir un résultat comme celui-ci:

<a href="1">sam</a><a href="2">john</a><a href="3">joe</a> 

Mon approche:

GROUP_CONCAT(CONCAT("<a href=\'",cat.id,"\'>",cat.name,"</a>")) AS cats 

Mais ici, je ne reçois que d'une page blanche en conséquence.

+0

j'ai découvert travaille, la page blanche vierge a été causée par une autre raison – Jarla

Répondre

5

Je viens d'utiliser des guillemets simples pour la chaîne et le guillemet pour l'attribut html. De plus j'ai utilisé un espace (» «) comme séparateur dans GROUP_CONCAT

CREATE TABLE GC1 (name VARCHAR(20), id INT); 

    INSERT INTO GC1 VALUES ('sam',1); 
    INSERT INTO GC1 VALUES ('john',2); 
    INSERT INTO GC1 VALUES ('joe',3); 
    SELECT * FROM GC1; 
    SELECT GROUP_CONCAT(CONCAT('<a href="',id,'">',name,'</a>') SEPARATOR " ") AS X FROM GC1; 

Sortie:

<a href="1">sam</a> <a href="2">john</a> <a href="3">joe</a> 
1

Ce

GROUP_CONCAT(CONCAT('<a href = "', `cat`.`id`, '">', `cat`.`name`, '</a>') SEPARATOR '') AS `cats` 

a fonctionné pour moi