Re: Help: Database Search
| From: | Sebastian Mendel | Date: | Wed, 10 Nov 2004 15:35:37 +0000 |
| Subject: | Re: Help: Database Search | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-201681@lists.php.net to get a copy of this message | ||
Stuart Felenstein wrote:
I am creating a database search form and results. Running into a problem though. I have two form elements, both that are fed by tables that have int values (1, 2 , etc) my sql statement is such: SELECT vendorjobs.PostStart, vendorjobs.JobTitle, vendorjobs.Industry, vendorjobs.VendorID, vendorjobs.LocationCity, vendorjobs.TaxTerm FROM vendorjobs WHERE vendorjobs.Industry = '$Ind' AND Date_Sub(Curdate(), interval '$Days' day) <= PostStart " But if the user decides to only use one of the elements, then I don't want the query to return nothing because of the "And" in the where clause so I have these 2 statements that set a default value (shown here as 0 in the event one of the two elements aren't selected: (Having no luck as the form still only works correctly if I've set both elements) $Ind = "0"; if (isset($_POST['Ind'])) { $Ind = (get_magic_quotes_gpc()) ? $_POST['Ind'] : addslashes($_POST['Ind']); } $Days = "0"; if (isset($_POST['Days'])) { $Days = (get_magic_quotes_gpc()) ? $_POST['Days'] : addslashes($_POST['Days']);$where = array(); if ( isset($_POST['Ind']) ) {
$where[] = 'vendorjobs.Industry = ' . (int) $_POST['Ind'];} if ( isset($_POST['Days']) ) {
$where[] = 'Date_Sub(Curdate(), interval ' . (int) $_POST['Days'] . ' day) <= PostStart';} $sql = ' SELECT ... FROM vendorjobs WHERE ' . implode( ' AND ', $where ); -- Sebastian Mendel www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com www.sf.net/projects/phpdatetime www.sf.net/projects/phptimesheet