close ad
Databridge V2 with MySQLi support IS Now Available!
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

Search multiple columns via one text box

Thread began 10/22/2018 7:33 pm by mrs | Last modified 1/04/2019 2:33 pm by Ray Borduin | 73 views | 6 replies |

mrs

Search multiple columns via one text box

How can I get one text box to search multiple columns of a DB table?

I've got these four columns created by DA where I have had to create a text box for each:

$searchWADAtbl_product_WADbSearch1 = new WA_MySQLi_Search("WADAtbl_product","");
if (isset($_GET["Search"]) || isset($_GET["Search_x"])) {
$searchWADAtbl_product_WADbSearch1->clearSearch();
$searchWADAtbl_product_WADbSearch1->setSearch(array("type"=>"Edit", "comparison"=>"Includes", "join"=>"AND"), array("fld_p_name"), "s", "fld_p_name");
$searchWADAtbl_product_WADbSearch1->setSearch(array("type"=>"Edit", "comparison"=>"Includes", "join"=>"AND"), array("fld_p_descrption"), "s", "fld_p_descrption");
$searchWADAtbl_product_WADbSearch1->setSearch(array("type"=>"Edit", "comparison"=>"Includes", "join"=>"AND"), array("fld_p_collection"), "s", "fld_p_collection");
$searchWADAtbl_product_WADbSearch1->setSearch(array("type"=>"Edit", "comparison"=>"Includes", "join"=>"AND"), array("fld_p_manufacturer"), "s", "fld_p_manufacturer");
}

This is what I have tried, but, guess what... it didn't work =D

$searchWADAtbl_product_WADbSearch1->setSearch(array("type"=>"Edit", "comparison"=>"Includes", "join"=>"AND"), array("fld_p_name"), "s", "fld_p_name", "fld_p_descrption", "fld_p_collection", "fld_p_manufacturer");

I've done this before with the pre-MySQLi version of DA, but it's beaten me this time!

Also, do I need , "join"=>"AND" if I have only one search box?

Thanks.

Sign in to reply to this post

Ray BorduinWebAssist

If you use the "keyword" search type it will allow you to select multiple columns in the UI. The correct code would be something like:

$searchWADAtbl_product_WADbSearch1->setSearch(array("type"=>"Edit", "comparison"=>"Includes", "join"=>"AND"), array("fld_p_name", "fld_p_descrption", "fld_p_collection", "fld_p_manufacturer"), "s", "fld_p_name");

Sign in to reply to this post

mrs

That worked. Thanks Ray.

The old method used to retain a session and utilise it to keep the search results returned until you killed the session off. Have you stopped that from happening by default with the new extension?

Is there a way to keep the session like the old way?

Sign in to reply to this post

Ray BorduinWebAssist

It should still maintain the search. If that isn't working, please send me a URL and FTP access and I can look into why.

Sign in to reply to this post

mrs

Hi Ray, I thought I had this working... I'm sure it was!

Anyway, I've just tested my search box and all records are being returned when I know that some should be omitted. I've just looked at the search UI and when I edit the search details shown in the list by clicking the pencil icon, the column pane shows some very strange listed items... e.g.: WADA_Insert_product or WAdbSearch1_product_results. Is this correct? Looking at your help info (yes, I have read it), it seems to show that you have DB column names whereas I seem to have session names listed.

Under the filter, I have the ability to choose 'Type: Keyword', and this changes the values of the fields beneath and allows me to choose columns from my DB there, but not all of the table's columns show despite having SELECT * in my recordset. There's 22 columns in my DB, but only about 7 showing!

Is the UI working as you would expect?

Anyway, the code I have is:

Search:
<?php
$searchWADAtbl_product_WADbSearch1 = new WA_MySQLi_Search("WADAtbl_product","");
if (isset($_GET["Search"]) || isset($_GET["Search_x"])) {
$searchWADAtbl_product_WADbSearch1->clearSearch();
$searchWADAtbl_product_WADbSearch1->setSearch(array("type"=>"Edit", "comparison"=>"Includes", "join"=>"AND"), array("fld_p_name", "fld_p_descrption", "fld_p_collection", "fld_p_manufacturer"), "s", "search");
}
?>

Recordset (on the same page as the above search):
<?php
$WADAtbl_product = new WA_MySQLi_RS("WADAtbl_product",$conn_mrs,20);
$WADAtbl_product->setQuery("SELECT * FROM tbl_product WHERE fld_p_show = 1 ORDER BY fld_p_timestamp DESC, fld_p_id DESC");
$WADAtbl_product->execute();
?>

Search box:
<form id="Search_Basic_Default" name="Search_Basic_Default" method="get" action="rental-furniture.php">
<div class="input-group collapse">
<input id="search" name="search" type="text" value="<?php echo((isset($_GET["search"])?$_GET["search"]:"")); ?>" title="Search" placeholder="Search" class="search-box ml-auto">
<button class="btn search-btn" type="submit">&nbsp;</button>
</div>
</form>


Please see images attached for behaviour of the UI.

The only change I have made is to replace the rsobj.php file you gave me for a previous file... I wonder if that is affecting it?

Sign in to reply to this post

Ray BorduinWebAssist

Can I get a url to reproduce and FTP access? I'll take a look and debug it to see what might be wrong.

Sign in to reply to this post

mrs

Oh ffs! I've just found the problem! Sorry for bothering you Ray.

It was as simple as discovering that id="Search" and name="Search" was missing from the button. It had nothing to do with the textfield, the recordset or the search array.

Thanks for you assistance as always.

Sign in to reply to this post

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...