Code : Tout sélectionner
CREATE TABLE articles_t_articles
(
pk_article serial NOT NULL,
titre character varying(256),
message text,
CONSTRAINT articles_t_articles_pkey PRIMARY KEY (pk_article)
)
WITH (OIDS=FALSE);
CREATE TABLE articles_r_auteurs
(
pk_auteur serial NOT NULL,
fk_auteur integer,
fk_article integer,
numero smallint,
CONSTRAINT articles_r_auteurs_pkey PRIMARY KEY (pk_auteur)
)
WITH (OIDS=FALSE);
$resultat = array(
array('titre' => 'titre1', 'message' => 'mon super message qui sert à rien', 'auteurs' => array('id1' => 'pseudo1'...)),
...
)
Vous voyez ce que je veux dire ?
array(
'titre' => 'titre1',
'message' => 'mon super message qui sert à rien',
'auteurs' => '1,9,30,2,16'
);
Voire :
array(
'titre' => 'titre1',
'message' => 'mon super message qui sert à rien',
'auteurs' => 'andré,robert,albat,nicole,albat'
);
Mais je doute que tu puisses obtenir un tableau. Ca dépend si le langage PL/PGSQL te permet de retourner des tableaux, et si le driver PGSQL te permet de récupérer des tableaux.
Code : Tout sélectionner
SELECT
titre, message, (select array_to_string(array(select pk_auteur from auteurs where fk_article=pk_article), ', ')) as auteurs
from articles ;