Problem with SELECT

Problem with SELECT

am 27.08.2006 22:11:20 von Anne Bos

I have a database where authors are listed together with articles they
wrote in a little journal. I want to present people what author has
produced what articles. In order to do that I made a form, adressing a
file called authors.php. If someone gives in a name of an author,
his/her name as well as his/her articles are listed as expected. So
far no problems.
However, if no name is given or if just return is hit, the querry
gives all authors. In that case I want no author being given back,
instead I prefer to give a sentence: "Please give the name of a
possible author".

The relevant items are (within php of course):
$search = $_POST[author];
and
$sql="SELECT (the relevant field names) FROM journal WHERE author LIKE
'%$search%' ORDER BY idart";
(idart gives a chronological numbering of all articles)

What should I do? Any hint is appreciated.

Anne Bos

Re: Problem with SELECT

am 27.08.2006 22:30:00 von Johnny

"Anne Bos" wrote in message
news:d1u3f2hh1ep2och4df1513rgfnl0uu1bfb@4ax.com...
> I have a database where authors are listed together with articles they
> wrote in a little journal. I want to present people what author has
> produced what articles. In order to do that I made a form, adressing a
> file called authors.php. If someone gives in a name of an author,
> his/her name as well as his/her articles are listed as expected. So
> far no problems.
> However, if no name is given or if just return is hit, the querry
> gives all authors. In that case I want no author being given back,
> instead I prefer to give a sentence: "Please give the name of a
> possible author".
>
> The relevant items are (within php of course):
> $search = $_POST[author];
> and
> $sql="SELECT (the relevant field names) FROM journal WHERE author LIKE
> '%$search%' ORDER BY idart";
> (idart gives a chronological numbering of all articles)
>
> What should I do? Any hint is appreciated.
>
> Anne Bos

an approach:

$search = $_POST['author'];
if (!empty($_POST['author'])) {
$sql="SELECT (the relevant field names) FROM journal WHERE author LIKE
'%$search%' ORDER BY idart";
// and your mysql and output stuff here
}
else {
echo "

Please give the name of a possible author

";
}

BTW you might want to save yourself some grief down the road by reading up
about sql injection and filtering the post accordingly.
also you should use single quotes around col tags $_POST['author'] so php
doesn't try to interpret them as constants initially.

Re: Problem with SELECT

am 28.08.2006 09:45:53 von Anne Bos

On Sun, 27 Aug 2006 13:30:00 -0700 wrote "Johnny"
:

>
>"Anne Bos" wrote in message
>news:d1u3f2hh1ep2och4df1513rgfnl0uu1bfb@4ax.com...
>> I have a database where authors are listed together with articles they
>> wrote in a little journal. I want to present people what author has
>> produced what articles. In order to do that I made a form, adressing a
>> file called authors.php. If someone gives in a name of an author,
>> his/her name as well as his/her articles are listed as expected. So
>> far no problems.
>> However, if no name is given or if just return is hit, the querry
>> gives all authors. In that case I want no author being given back,
>> instead I prefer to give a sentence: "Please give the name of a
>> possible author".
>>
>> The relevant items are (within php of course):
>> $search = $_POST[author];
>> and
>> $sql="SELECT (the relevant field names) FROM journal WHERE author LIKE
>> '%$search%' ORDER BY idart";
>> (idart gives a chronological numbering of all articles)
>>
>> What should I do? Any hint is appreciated.
>>
>> Anne Bos
>
>an approach:
>
>$search = $_POST['author'];
>if (!empty($_POST['author'])) {
> $sql="SELECT (the relevant field names) FROM journal WHERE author LIKE
>'%$search%' ORDER BY idart";
> // and your mysql and output stuff here
>}
>else {
> echo "

Please give the name of a possible author

";
>}
>
>BTW you might want to save yourself some grief down the road by reading up
>about sql injection and filtering the post accordingly.
>also you should use single quotes around col tags $_POST['author'] so php
>doesn't try to interpret them as constants initially.
>
>
>
>
>
Thank you,
I have been fiddling with empty(), but now I see what I did wrong.
I should have known.
Also thanks for your tips.

Re: Problem with SELECT

am 29.08.2006 03:29:07 von totalstranger

On or about 8/27/2006 4:11 PM, it came to pass that Anne Bos wrote:
> I have a database where authors are listed together with articles they
> wrote in a little journal. I want to present people what author has
> produced what articles. In order to do that I made a form, adressing a
> file called authors.php. If someone gives in a name of an author,
> his/her name as well as his/her articles are listed as expected. So
> far no problems.
> However, if no name is given or if just return is hit, the querry
> gives all authors. In that case I want no author being given back,
> instead I prefer to give a sentence: "Please give the name of a
> possible author".
>
> The relevant items are (within php of course):
> $search = $_POST[author];
> and
> $sql="SELECT (the relevant field names) FROM journal WHERE author LIKE
> '%$search%' ORDER BY idart";
> (idart gives a chronological numbering of all articles)
>
> What should I do? Any hint is appreciated.
>
> Anne Bos

On the return problem. Assuming you are using a SUBMIT button to post
the entered data: set up a dummy hidden submit button before the first
entry field. It will force the browser to send this button and handle
the enter key problem. (you can also do the style in-line)