Re: forms /selects solution - Mailing list pgsql-php

From angelo.rigo@globo.com
Subject Re: forms /selects solution
Date
Msg-id 3DCBFE22000E98C7@riosf06.globoi.com
Whole thread Raw
In response to Re: forms /selects  (angelo.rigo@globo.com)
List pgsql-php
Here is the final working code:


        <BR><form method="post" size="1" action="<?php print("$PHP_SELF"); ?>">
        <select size="1" name="leter">
                        <option selected>Escolha letra inicial
                        <option value=A>A
                        <option value=B>B
                        <option value=C>C
                        <option value=D>D
                        <option value=E>E
                        <option value=F>F
                        <option value=G>G
                        <option value=H>H
                        <option value=I>I
                        <option value=J>J
                        <option value=K>K
                        <option value=L>L
                        <option value=M>M
                        <option value=N>N
                        <option value=O>O
                        <option value=P>P
                        <option value=Q>Q
                        <option value=R>R
                        <option value=S>S
                        <option value=T>T
                        <option value=U>U
                        <option value=V>V
                        <option value=X>X
                        <option value=Y>Y
                        <option value=Z>Z
                        </select><input type="submit" value="Enviar">
                        </form>
                        </TD>
      </TR>
      </TABLE> <br>
 <?php
$db = pg_connect("dbname=db user=user");
$query ="SELECT name FROM table WHERE (nome like '$leter%') ORDER BY name
ASC ";
$result = pg_exec($db, $query);

if (!$result) {printf ("Não há nomes com esta letra inicial!"); exit;}
$numrows = pg_numrows($result);

if (!$numrows) {
    print("Não foram encontrados nomes iniciados por : $letra");
    print("<a href='javascript:history.back(-1);'><<Voltar</a>");
}
else{
$row=0;
printf ("<table border=0>");
printf ("<tr bgcolor='#FFFF33'><td><b>Nome</b></td></tr>");
do
{
$myrow = pg_fetch_array ($result,$row);
    if($row  % 2)    {
        $bgcolor="#FFFF99";
        }
    else  {
        $bgcolor="";
        }
printf ("<tr bgcolor='$bgcolor'><td>%s</td></tr>",$myrow[name]);
$row++;
}
while ($row < $numrows);
printf ("</table>");
}//else
pg_close($db);
?>



 '>'-- Mensagem Original --
 '>'Date: Tue, 10 Dec 2002 13:52:45 -0300
 '>'From: angelo.rigo@globo.com
 '>'Subject: Re: [PHP] forms /selects
 '>'To: pgsql-php@postgresql.org
 '>'
 '>'
 '>'Hi
 '>'
 '>'I see my error was not using the "like"
 '>'but now i fall in other problem:
 '>'
 '>'I have made an if else to display a message
 '>'if have no name with the selected leter as initial
 '>'
 '>'it works but disply too:
 '>'
 '>'Warning: Unable to jump to row 0 on PostgreSQL result index 2 in /var/www/html/inscricao/resultado_a1.php
 '>'on line 80
 '>'
 '>'how could i handle this?
 '>'
 '>'Thank?s in advance:
 '>'
 '>'here is my actual code:
 '>'
 '>'Pesquisa de nome por letra inicial
 '>'        <BR><form method="post" size="1" action="<?php print("$PHP_SELF");
?>">
 '>'        <select size="1" name="letra">
 '>'                        <option selected>Escolha letra inicial
 '>'                        <option value=A>A
 '>'                        <option value=B>B
 '>'                        <option value=C>C
 '>'                        <option value=D>D
 '>'                        <option value=E>E
 '>'                        <option value=F>F
 '>'                        <option value=G>G
 '>'                        <option value=H>H
 '>'                        <option value=I>I
 '>'                        <option value=J>J
 '>'                        <option value=K>K
 '>'                        <option value=L>L
 '>'                        <option value=M>M
 '>'                        <option value=N>N
 '>'                        <option value=O>O
 '>'                        <option value=P>P
 '>'                        <option value=Q>Q
 '>'                        <option value=R>R
 '>'                        <option value=S>S
 '>'                        <option value=T>T
 '>'                        <option value=U>U
 '>'                        <option value=V>V
 '>'                        <option value=X>X
 '>'                        <option value=Y>Y
 '>'                        <option value=Z>Z
 '>'                        </select><input type="submit" value="Enviar"></form></TD>
 '>'      </TR>
 '>'      </TABLE> <br>
 '>' <?php
 '>'$db = pg_connect("dbname=db user=user");
 '>'$query ="SELECT name FROM aprovados WHERE (nome like '$leter%') ORDER
BY
 '>'name ASC ";
 '>'$result = pg_exec($db, $query);
 '>'
 '>'if (!$result) {printf ("Não há nomes com esta letra inicial!"); exit;}
 '>'$numrows = pg_numrows($result);
 '>'
 '>'
 '>'/***********************
 '>'     actual problem
 '>'***********************/
 '>'
 '>'if ($numrows=='0') {
 '>'    print("Não foram encontrados nomes iniciados por : $letra");
 '>'    print("<a href='javascript:history.back(-1);'><<Voltar</a>");
 '>'}
 '>'else
 '>'
 '>'$row=0;
 '>'printf ("<table border=0>");
 '>'printf ("<tr bgcolor='#FFFF33'><td><b>Nome</b></td></tr>");
 '>'do
 '>'{
 '>'$myrow = pg_fetch_array ($result,$row);
 '>'    if($row  % 2)    {
 '>'        $bgcolor="#FFFF99";
 '>'        }
 '>'    else  {
 '>'        $bgcolor="";
 '>'        }
 '>'printf ("<tr bgcolor='$bgcolor'><td>%s</td></tr>",$myrow[nome]);
 '>'$row++;
 '>'}
 '>'while ($row < $numrows);
 '>'printf ("</table>");
 '>'pg_close($db);
 '>'?>
 '>'
 '>'
 '>'
 '>'
 '>'
 '>'
 '>' '>'-- Mensagem Original --
 '>' '>'To: pgsql-php@postgresql.org
 '>' '>'Subject: Re: [PHP] forms /selects
 '>' '>'From: jco@cornelius-olsen.dk
 '>' '>'Date: Tue, 10 Dec 2002 15:03:33 +0100
 '>' '>'
 '>' '>'
 '>' '>'I see a couple of errors, one of which is the source of your problem.
 '>' '>'You write:
 '>' '>'        "SELECT name FROM thetable WHERE (nome=$leter%) ORDER BY
nome
 '>'ASC";
 '>' '>'This would evaluate to
 '>' '>'        "SELECT name FROM thetable WHERE (nome=A%) ORDER BY nome
ASC";
 '>' '>'
 '>' '>'What you need to write is:
 '>' '>'        "SELECT name FROM thetable WHERE (nome like '$leter%') ORDER
 '>'BY nome
 '>' '>'ASC";
 '>' '>'
 '>' '>'"like" is required to make regular expression match.
 '>' '>'The quotes are always required when dealing with strings (and a
few
 '>'other
 '>' '>'
 '>' '>'types).
 '>' '>'
 '>' '>'You could have just debugged this by
 '>' '>'        echo $query;
 '>' '>'
 '>' '>'Also: Letter contains two t's. :)
 '>' '>'
 '>' '>'Regards
 '>' '>'/Jørn Cornelius Olsen
 '>'
 '>'
 '>'________________________________________
 '>'A busca mais veloz e precisa da internet. Acesse agora: http://www.zoom.com.br.
 '>'
 '>'
 '>'
 '>'---------------------------(end of broadcast)---------------------------
 '>'TIP 6: Have you searched our list archives?
 '>'
 '>'http://archives.postgresql.org


________________________________________
A busca mais veloz e precisa da internet. Acesse agora: http://www.zoom.com.br.



pgsql-php by date:

Previous
From: angelo.rigo@globo.com
Date:
Subject: Re: forms /selects
Next
From: "Kelvin Varst"
Date:
Subject: Re: Large file upload