Re: display query results

Tomas Vondra <[email protected]>
Newsgroups gmane.comp.db.postgresql.php
Message-ID <[email protected]>
See, you're working with a database - you execute a query but the data 
(result) is still in the database. The '$result' variable represents 
just a link to the data in the database - that's why it prints 'Resource 
id #3'. That's almost the same as the '$connection' variable - I guess 
you don't expect this to print all the data in the database:

<?php

$connection = pg_connect('...');
echo $connection;

?>

So you have to fetch the data from resultset from the database process 
into PHP, and that's what pg_fetch_* functions are for. Each time you 
call pg_fetch_array($result) it fetches and returns the next row (or 
FALSE if there are no more rows).

The rows returned by pg_fetch_array are associative arrays, keys being 
the field names.

So something like this should work:

<?php

$connection = pg_connect('...');
$result = pg_query('SELECT field_a, field_b FROM my_table');

while ($row = pg_fetch_array($result)) {

    echo 'field a: ', $row['field_a'],"\n";
    echo 'field b: ', $row['field_b'],"\n\n";

}

?>

If it prints nothing, then the resultset is empty - try to run the same 
query pro psql or some other SQL interface.

Tomas


> Doesn't work... and I feel totally lost. I don't understand the 
> pg_fetch_* stuff at all.
> One would think that my query should return the text that is in the 
> field. The database is quite correct and does work with php since it 
> comes from an older web-site that someone else programmed for me. I'm 
> using it to practice and learn. :)
> 
> Matthias Ritzkowski wrote:
>> Try this:
>>
>> $db = pg_connect("host=localhost port=5432 dbname=med user=med
>> password=0tscc71");
>>
>>          if (!$db)
>>          {
>>          die("Could not open connection to database server");
>>          }
>>
>>           // generate and execute a query
>>          $query = "SELECT description FROM glossary_item WHERE
>>  name='Alcohol'";
>>          $result = pg_query($db, $query) or die("Error in query: $query.
>>          " . pg_last_error($db));
>>
>>          // Print result on screen
>> while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
>>    foreach ($line as $col_value) {
>>         echo $col_value."<br />";
>>     }
>>
>>          pg_close($db);
>>
>>
>> The result set is an array, You just need to loop through it. The php
>> manual has some nice examples that helped me get started.
>> --------------------------------
>>
>>
>> Matthias Ritzkowski
>>
>>   
> 
> 


-- 
Sent via pgsql-php mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-php
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.