Bonjour,
Voici plusieurs jours que je bloque sur un truc qui me parait pourtant très simple.
Je ne trouve pas d'exemple, de tuto, ni d'aide sur cela.
Je vous explique...
Je voudrais faire une procédure stockée en postgresql qui renvoie deux jeux de résultats.
Par exemple :
ALTER FUNCTION public.testdle8() OWNER TO admin;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 -- -- Name: testdle8(); Type: FUNCTION; Schema: public; Owner: admin -- CREATE FUNCTION testdle8() RETURNS SETOF record AS $$SELECT 123 AS truc1 ; SELECT u_id AS truc2 FROM utilisateur ; SELECT 456 AS truc3 ;$$ LANGUAGE sql;
[/code]
NB : Ne cherchez pas de cohérence entre les deux requètes, il n'y en a pas dans cet exemple ;-)
Puis, dans mon code PHP, je voudrais pouvoir afficher les noms des utilisateurs puis les titres des actualités.
Voilà, c'est aussi simple que cela.
Lorsque je fait cela et que j'appelle ma fonction, seul le dernier jeu de résultats est accessible. Aussi bien directement sur phpPgAdmin qu'en php...
Pour finir, mon code php :
Merci pour votre aide...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php try { $hostname = "localhost"; $dbname = "db"; $username = "login"; $pw = "pwd"; $pdo = new PDO ("pgsql:host=$hostname;dbname=$dbname","$username","$pw"); } catch (PDOException $e) { echo "Failed to get DB handle: " . $e->getMessage() . "\n"; exit; } $query = $pdo->prepare("select testdle8()"); $query->execute(); for($i=0; $row = $query->fetch(); $i++){ var_dump($row) ; echo $i." - ".$row[0]."<br/>"; } unset($pdo); unset($query); ?>
David
Partager