Wrox Programmer Forums

Need to download code?

View our list of code downloads.

Go Back   Wrox Programmer Forums > PHP/MySQL > PHP Databases
Password Reminder
Register
| FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read
PHP Databases Using PHP in conjunction with databases. PHP questions not specific to databases should be directed to one of the other PHP forums.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the PHP Databases section of the Wrox Programmer to Programmer discussions. This is a community of tens of thousands of software programmers and website developers including Wrox book authors and readers. As a guest, you can read any forum posting. By joining today you can post your own programming questions, respond to other developers’ questions, and eliminate the ads that are displayed to guests. Registration is fast, simple and absolutely free .
DRM-free e-books 300x50
Reply
 
Thread Tools Search this Thread Display Modes
  #1 (permalink)  
Old July 30th, 2004, 05:41 PM
Registered User
 
Join Date: Jul 2004
Location: , , .
Posts: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Default search help !!


hi,
i am trying to figure out how i can search a database with multiple columns. you can look at the database results here (limited output): http://test.rowait.com/new/inventory.php

basically what i want is to search like: "93 accord" and should get the expected results.

there is a year_from and year_to column which comprises the years for the first column.

so far, i have managed to get results only by a particular category, ie. part name, year, make, model, etc, only one, but not combinations.

thanx in advance.

sincerely,
fusi0n

Reply With Quote
  #2 (permalink)  
Old July 31st, 2004, 08:07 AM
Friend of Wrox
 
Join Date: Jun 2003
Location: , , United Kingdom.
Posts: 256
Thanks: 0
Thanked 0 Times in 0 Posts
Default

Hi,
On the whole, your search follows the correct general ideas, since it seems to search the database on the basis of WHERE year LIKE '%$q%' OR make LIKE '%$q%' OR model LIKE '%$q%' OR part_name LIKE '%$q%'...

The inclusion of a combined free text query, where your programme, on receiving input, must parse the string in accordance with some predefined rules for search string format, really depends on how many different formats you are willing to cater for. You could build up an array of plausible input types and try to catch each one out, but this is inevitably going to be difficult and offers the possibility for items slipping through the search. After all, your aim is really to get car parts sold, isn't it?

A simpler option might be to impose more structure over the method of input. Have things like the year as a drop down list of reasonable options. Perhaps have the Make and Model presented similarly (and, while you're at it, turn your "make" and "model" fields, in your database, into types such as enum('Acura', 'Honda', 'Subaru' ... etc.) while you're at it, to help enforce some uniformity over your data - no point having a 'Subaru Impreza left front fender' sitting on the shelf gathering dust, simply because someone spelt it 'Impretza' when putting it in the database, so it never turns up in searches, is there ;).

Then you simply pull out your search values as $year=$_GET['year'], $make=$_GET['make'] and $q=$_GET['q'] and run a query like
SELECT <field list> FROM inventory WHERE year_from>='$year' OR year_to<='$year' AND Make='$make' AND part_name LIKE '%$q%'

Furthermore, you could cater for the 'any' option of Make and Year, by having the first element of each dropdown as <option value="">-Any-</option>. Build your query string over several lines and test for the "Any" options for year and make thus:

$query = "SELECT <field list, whatever> FROM inventroy WHERE ";
if($_GET['year']!=''){
$query .= "year_from>='{$_GET['year']} AND year_to<='{$_GET'year']}' AND ";
}
if($_GET['make']!=''){
$query .= "AND make='{$_GET['make']}' AND ";
}
$query .= "part_name LIKE '%$q%' AND other_fields LIKE '%$q%' AND so_on LIKE '%$q%' ORDER BY make";

Anyway, that's probably how I'd do it. Your aim is to sell car parts, like I say, so make your search form as explicit as possible about how the customer is to get to see the parts they want. After all, if they're just stuffed their Subaru Impreza into a hedge, they won't mind foregoing a little ease of input for the chance to get their hands on that new fender, are they?

Let us know how you get one.

Take it easy,
Dan
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Search button doesn't search Access DB cbones Visual Studio 2008 1 October 27th, 2008 07:36 PM
New text search doesn't preselect search string planoie Visual Studio 2005 0 July 23rd, 2007 06:47 AM
File Search / Indexing Search with .net 2.0 maulik77 ASP.NET 1.0 and 1.1 Basics 2 March 15th, 2007 12:45 AM
Search Engine for Full-text Search Kala ASP.NET 1.0 and 1.1 Professional 2 August 29th, 2004 02:16 AM
Search engine that search through local drive! wenzation Classic ASP Basics 0 August 26th, 2003 09:15 PM



All times are GMT -4. The time now is 11:08 AM.


Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
© 2013 John Wiley & Sons, Inc.