Connecting Tech Pros Worldwide Forums | Help | Site Map

pqsql fieldnames

meltedown
Guest
 
Posts: n/a
#1: Mar 9 '06
This is a function that returns the names a table field on a pgsql database

$skips is simply the field names that will be left out of the result.

This function acts differently on two different servers
Both servers have PHP Version 4.3.10-10ubuntu4.3
AND PostgreSQL(libpq) Version 7.4.6

On one server, the function acts as expected, returning an array with
the field names. On the other server, some of the field names come up 6
times instead of once. Apparently, something in my sql is creating
multiple values for some names. My sql is kind of fuzzy, can you see the
mistake ?

function fieldnames($table, $skips=NULL){
$sql="SELECT a.attname FROM pg_attribute a, pg_class c WHERE
c.relname = '$table' AND a.attnum > 0 AND a.attrelid = c.oid ORDER BY
a.attnum ";
$result=q($sql);
$skips=mkarr($skips);
while($row=pg_fetch_assoc($result)){
if(in_array($row['attname'], $skips))continue;
$fnames[]=$row['attname'];
}
return $fnames;
}

Jerry Stuckle
Guest
 
Posts: n/a
#2: Mar 10 '06

re: pqsql fieldnames


meltedown wrote:[color=blue]
> This is a function that returns the names a table field on a pgsql database
>
> $skips is simply the field names that will be left out of the result.
>
> This function acts differently on two different servers
> Both servers have PHP Version 4.3.10-10ubuntu4.3
> AND PostgreSQL(libpq) Version 7.4.6
>
> On one server, the function acts as expected, returning an array with
> the field names. On the other server, some of the field names come up 6
> times instead of once. Apparently, something in my sql is creating
> multiple values for some names. My sql is kind of fuzzy, can you see the
> mistake ?
>
> function fieldnames($table, $skips=NULL){
> $sql="SELECT a.attname FROM pg_attribute a, pg_class c WHERE
> c.relname = '$table' AND a.attnum > 0 AND a.attrelid = c.oid ORDER BY
> a.attnum ";
> $result=q($sql);
> $skips=mkarr($skips);
> while($row=pg_fetch_assoc($result)){
> if(in_array($row['attname'], $skips))continue;
> $fnames[]=$row['attname'];
> }
> return $fnames;
> }[/color]

Since the problem seems to be in the SQL code, might I suggest that a
PostgreSQL newsgroup would be more appropriate?


--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
Closed Thread