Обсуждение: help !!!

Поиск
Список
Период
Сортировка

help !!!

От
"Alxander A. Kapralov"
Дата:
 function PaperList () {
        global $db;
        $str = "select gazeta.id as i,gorod.id as ig,trim(gazeta.name,'
') as gaz_n, trim(gorod.name,' ') as gor_n from gazeta,gorod where
gazeta.id_gorod=gorod.id order by gazeta.name asc;";
        $result = pg_Exec( $db, $str );
        if ($result = pg_Exec( $db, $str ) != false && ($num =
pg_numrows($result)) ) {
            for ($i = 0; $i < $num; $i++) {
                $r = pg_fetch_object($result, $i);
                    ^^^^^   -- here get error message
                echo "<OPTION VALUE=$r->i> $r->gor_n / $r->gaze_n\n";
            };
        };
    };

Supplied argument is not a valid PostgreSQL result resource in ib.inc
Can any one explain that  !!!!



Re: help !!!

От
Keary Suska
Дата:
on 6/17/02 4:17 AM, sasha@province.ru purportedly said:

> function PaperList () {
> global $db;
> $str = "select gazeta.id as i,gorod.id as ig,trim(gazeta.name,'
> ') as gaz_n, trim(gorod.name,' ') as gor_n from gazeta,gorod where
> gazeta.id_gorod=gorod.id order by gazeta.name asc;";
> $result = pg_Exec( $db, $str );
> if ($result = pg_Exec( $db, $str ) != false && ($num =
> pg_numrows($result)) ) {
> for ($i = 0; $i < $num; $i++) {
> $r = pg_fetch_object($result, $i);
> ^^^^^   -- here get error message
> echo "<OPTION VALUE=$r->i> $r->gor_n / $r->gaze_n\n";
> };
> };
> };
>
> Supplied argument is not a valid PostgreSQL result resource in ib.inc
> Can any one explain that  !!!!

Are you sure the offending line is the one you think it is? Line numbers
reported can be misleading since PHP looks at lines differently than most
text editors. There could possibly be an obscure precedence issue with your
if() statement. I recommend getting rid of the first pg_exec call (you are
actually calling the query twice--the pg_exec in the if() statement executes
the query a second time), and changing the if() statement:

if ( $result = pg_exec( $db, $str ) and $num = pg_numrows($result) ) {
  for ($i = 0; $i < $num; $i++) {
    $r = pg_fetch_object($result, $i);
    echo "<OPTION VALUE=$r->i> $r->gor_n / $r->gaze_n\n";
  };
};

Note the changed if() statement. This should clarify the precedence.

Keary Suska
Esoteritech, Inc.
"Leveraging Open Source for a better Internet"


Re: help !!!

От
"Alxander A. Kapralov"
Дата:

Keary Suska wrote:

>Are you sure the offending line is the one you think it is? Line numbers
>reported can be misleading since PHP looks at lines differently than most
>text editors. There could possibly be an obscure precedence issue with your
>if() statement. I recommend getting rid of the first pg_exec call (you are
>actually calling the query twice--the pg_exec in the if() statement executes
>the query a second time), and changing the if() statement:
>
>if ( $result = pg_exec( $db, $str ) and $num = pg_numrows($result) ) {
>  for ($i = 0; $i < $num; $i++) {
>    $r = pg_fetch_object($result, $i);
>    echo "<OPTION VALUE=$r->i> $r->gor_n / $r->gaze_n\n";
>  };
>};
>
>Note the changed if() statement. This should clarify the precedence.
>
>Keary Suska
>Esoteritech, Inc.
>"Leveraging Open Source for a better Internet"
>
I am so sorry, but this exasperating mistake with repeated call pg_exec
...

Thank you for help.




Re: help !!!

От
"Cornelia Boenigk"
Дата:
Hi Alxander

> $r = pg_fetch_object($result, $i);
This syntax is valid since PHP 4.2.0. Are you sure that you use no
older PHP-Version?


>         $result = pg_Exec( $db, $str );
>         if ($result = pg_Exec( $db, $str ) != false && ($num =
> pg_numrows($result)) ) {

In the second line of the code-snippet you execute pg_exec a second
time. Write instead:

        $result = pg_Exec( $db, $str );
        if ($result  && ($num = pg_numrows($result))) {

Regards
Conni