I'll try to explain the basics of a technique I often use:

imagine you have 0 or more possible where clauses. start of with an empty array e.g.

$whereClauses = array();

now for each clause you need add the relevant subclause as a seperate item to the array (DO NOT include the AND or WHERE string). e.g.

if ($foo) {
// it up to you to make sure $foo is okay for adding to a query string
        $whereClauses[] = " foofield='$foo'";

once you have gone thru all the possible subclauses that could exist do something like this (I'll assume $sql contains the base query):

if (count($whereClauses)) {
        // we have a where statement to make
        $sql = $sql . ' WHERE ' . join(' AND ', $whereClauses);

I leave it up to your imagination how you apply this idea!


Bastien Koert wrote:
one simple trick is to use a clause that always evaluates correctly. For example, in my site I don't delete data, but flag it with a field (record_deleted) which defaults to 'No' (actually 0) and can be set to 'Yes' (again 1) so that all queries are built with the requirement to use AND


$sql = "select * from tablename where record_deleted = 0 "

//code to delevop additional where paramters goes here
if (!empty($_POST['city'])){
  $sql .= " AND city like '{$_POST['city']}%' ";
}//end if

you could also use the same mechanism that PHPMYAdmin does which is to 1

select * from tablename where 1

since one always evaluates to true and does not affect the query, its a simple way of doing the same as above


From: "Chris Payne" <[EMAIL PROTECTED]>
To: <>
Subject: [PHP-DB] Removing first word from a string?
Date: Mon, 3 Jan 2005 21:46:03 -0500

Hi there everyone,

I am building a dynamic MySQL query for a project I am working on, but there
are instances where it products WHERE AND instead of WHERE city etc ….. due
to the nature of the system I am developing. My question is, how can I
remove the FIRST “ AND” from a string if it is present, but leave all other
AND statements in the string?

I would really appreciate any help on this. I can do a find and replace on
a string no problem, but just want it to be removed IF it is the FIRST word
in the string.

Oh and Happy New Year everyone.


-- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.296 / Virus Database: 265.6.7 - Release Date: 12/30/2004

-- PHP Database Mailing List ( To unsubscribe, visit:

Reply via email to