Re: A function for building a where clause.

From: Timothy_Maguire(at)hartehanks(dot)com
To: <anepon(at)verveinternet(dot)com>
Cc: pgsql-php(at)postgresql(dot)org, pgsql-php-owner(at)postgresql(dot)org
Subject: Re: A function for building a where clause.
Date: 2001-07-19 17:09:53
Message-ID: OFDC68B869.791D9EB6-ON85256A8E.005D28F9@hartehanks.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php


I would not include the WHERE and AND statements in your snippet here.
Take all the "table.field = '$some_var'" and push them into an array and
then create the query on the fly and plug the WHERE and AND as you go.

for example,
$query_array = array();
if (!empty($f_you))
{
array_push($query_array, "tbl_all.employee_id = '$f_you'");
}
if (!empty($next_var))
{
array_push($query_array, "tbl_all.somefield = '$some_var'");
}
...and so on.....

then take that array and plug the WHERE and AND in.

$query = "SELECT * FROM tbl_all WHERE ";
for($i=0;$i<sizeof($query_array);$i++)
{
$query .= $query_array[$i];
if($i < sizeof($query_array) - 1)
{
// this will plug the AND into the $query inbetween all the array
elements except for the last one
$query .= " AND ";
}
}

There could be a better way to do this. I would be interested in any other
solutions.

Tim.

Timothy P. Maguire
Web Developer II
Harte-Hanks
978 436 3325


"Ari Nepon"
<anepon(at)verveinterne To: <pgsql-php(at)postgresql(dot)org>
t.com> cc:
Sent by: Subject: A function for building a where clause.
pgsql-php-owner(at)post
gresql.org


07/19/01 12:46 PM
Please respond to
anepon

Does anyone know of a function that I could use to take form data and build
a where clause for my SQL query based on their choices (which can be from
text fields, memo fields, dropdowns of numbers or letters, and radio
buttons
or check boxes).

Here is something I wrote, but i know is not correct, and would fail unless
the first choice is chosen. But it gives an idea of what I am trying to do.

function searchparams()
{
global $f_you;
global $f_clients;
global $f_project;
global $f_task;
global $f_description;
global $f_hours;
global $f_date;

if(!empty($f_you))
$sort1="WHERE tbl_all.employee_ID = \"$f_you\"";
if(!empty($f_clients))
$sort2="AND tbl_all.client_ID = \"$f_clients\"";
if(!empty($f_project))
$sort3="AND tbl_all.project_ID = \"$f_project\"";
if(!empty($f_task))
$sort4="AND tbl_all.task_ID = \"$f_task\";
if(!empty($f_description))
$sort5="AND tbl_all.description LIKE '$f_description'";
if(!empty($f_hours))
$sort6="AND bl_all.hours = \"$f_hours\"";
if(!empty($f_date))
$sort7="AND tbl_all.date LIKE \"$f_project\"";
$finalsort="$sort1 $sort2 $sort3 $sort4 $sort5 $sort6 $sort7";
echo "final sort:$finalort $f_project";
return $finalsort;

}

Problem with this function is that I am getting a where clause that has AND
sometable.somecolumn="" and its screwing up my query.

Thanks,

Ari

~~~~~~~~~~~~~~~~~~~~~~~~~
Ari Nepon
MRB Communications
4520 Wilde Street, Ste. 2
Philadelphia, PA 19127
p: 215.508.4920
f: 215.508.4590
http://www.mrbcomm.com

-----------------------------------------------------------------------
Sign up for our email list and receive free information about
topics of interest to nonprofit communications, marketing, and
community building professionals. Free resources, articles, tips.
Go to http://www.mrbcomm.com and use the Mailing List form.
-----------------------------------------------------------------------

---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
message can get through to the mailing list cleanly

Browse pgsql-php by date

  From Date Subject
Next Message Andrew McMillan 2001-07-20 00:23:26 Re: A function for building a where clause.
Previous Message Ari Nepon 2001-07-19 16:46:53 A function for building a where clause.