Re: forms /selects solution

From: angelo(dot)rigo(at)globo(dot)com
To: pgsql-php(at)postgresql(dot)org
Subject: Re: forms /selects solution
Date: 2002-12-10 17:19:10
Message-ID: 3DCBFE22000E98C7@riosf06.globoi.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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(dot)rigo(at)globo(dot)com
'>'Subject: Re: [PHP] forms /selects
'>'To: pgsql-php(at)postgresql(dot)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(at)postgresql(dot)org
'>' '>'Subject: Re: [PHP] forms /selects
'>' '>'From: jco(at)cornelius-olsen(dot)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.

In response to

Browse pgsql-php by date

  From Date Subject
Next Message Kelvin Varst 2002-12-10 19:03:52 Re: Large file upload
Previous Message angelo.rigo 2002-12-10 16:52:45 Re: forms /selects