saini Posted June 14, 2006 Share Posted June 14, 2006 I have a search form that searches 2 tables. I am not getting results correctly.The form is at zetourz.com/search.phpIf I just select Country and city, it should give out all rows with that country & city, but I am somehow not getting that as expected.The query I have ismysql_select_db($database_tour, $tour);$query_rsSearch = sprintf("SELECT tour.*, hotdeals.* FROM (tour LEFT JOIN hotdeals ON hotdeals.tour_hotdeals=tour.id_tour) WHERE (country_tour = %s AND city_tour = %s) OR name_tour LIKE %s OR days_tour>=%s OR days_tour<=%s OR type_tour LIKE %s OR type2_tour LIKE %s OR type3_tour LIKE %s OR type4_tour LIKE %s OR start_hotdeals>=%s OR end_hotdeals<=%s ORDER BY tindex_tour ASC"Please help find the problem. Quote Link to comment Share on other sites More sharing options...
Wildbug Posted June 15, 2006 Share Posted June 15, 2006 [!--quoteo(post=383990:date=Jun 14 2006, 05:27 PM:name=saini)--][div class=\'quotetop\']QUOTE(saini @ Jun 14 2006, 05:27 PM) [snapback]383990[/snapback][/div][div class=\'quotemain\'][!--quotec--]...mysql_select_db($database_tour, $tour);$query_rsSearch = sprintf("SELECT tour.*, hotdeals.* FROM (tour LEFT JOIN hotdeals ON hotdeals.tour_hotdeals=tour.id_tour) WHERE (country_tour = %s AND city_tour = %s) OR name_tour LIKE %s OR days_tour>=%s OR days_tour<=%s OR type_tour LIKE %s OR type2_tour LIKE %s OR type3_tour LIKE %s OR type4_tour LIKE %s OR start_hotdeals>=%s OR end_hotdeals<=%s ORDER BY tindex_tour ASC"[/quote]Can you post the rest of the sprintf() line? Quote Link to comment Share on other sites More sharing options...
fenway Posted June 15, 2006 Share Posted June 15, 2006 Maybe you're missing some grouping parentheses... also, why the derived table? Quote Link to comment Share on other sites More sharing options...
saini Posted June 15, 2006 Author Share Posted June 15, 2006 Here is the complete code:$colname_rsSearch = "-1";if (isset($_POST['country'])) { $colname_rsSearch = (get_magic_quotes_gpc()) ? $_POST['country'] : addslashes($_POST['country']);}$colname9_rsSearch = "-1";if (isset($_POST['startdate'])) { $colname9_rsSearch = (get_magic_quotes_gpc()) ? $_POST['startdate'] : addslashes($_POST['startdate']);}$colname10_rsSearch = "-1";if (isset($_POST['enddate'])) { $colname10_rsSearch = (get_magic_quotes_gpc()) ? $_POST['enddate'] : addslashes($_POST['enddate']);}$colname6_rsSearch = "-1";if (isset($_POST['tourtype'])) { $colname6_rsSearch = (get_magic_quotes_gpc()) ? $_POST['tourtype'] : addslashes($_POST['tourtype']);}$colname7_rsSearch = "-1";if (isset($_POST['tourtype'])) { $colname7_rsSearch = (get_magic_quotes_gpc()) ? $_POST['tourtype'] : addslashes($_POST['tourtype']);}$colname8_rsSearch = "-1";if (isset($_POST['tourtype'])) { $colname8_rsSearch = (get_magic_quotes_gpc()) ? $_POST['tourtype'] : addslashes($_POST['tourtype']);}$colname5_rsSearch = "-1";if (isset($_POST['tourtype'])) { $colname5_rsSearch = (get_magic_quotes_gpc()) ? $_POST['tourtype'] : addslashes($_POST['tourtype']);}$colname3_rsSearch = "-1";if (isset($_POST['mindays'])) { $colname3_rsSearch = (get_magic_quotes_gpc()) ? $_POST['mindays'] : addslashes($_POST['mindays']);}$colname4_rsSearch = "-1";if (isset($_POST['maxdays'])) { $colname4_rsSearch = (get_magic_quotes_gpc()) ? $_POST['maxdays'] : addslashes($_POST['maxdays']);}$colname1_rsSearch = "-1";if (isset($_POST['city'])) { $colname1_rsSearch = (get_magic_quotes_gpc()) ? $_POST['city'] : addslashes($_POST['city']);}mysql_select_db($database_tour, $tour);$query_rsSearch = sprintf("SELECT tour.*, hotdeals.* FROM (tour LEFT JOIN hotdeals ON hotdeals.tour_hotdeals=tour.id_tour) WHERE (country_tour = %s AND city_tour = %s) OR days_tour>=%s OR days_tour<=%s OR (type_tour LIKE %s OR type2_tour LIKE %s OR type3_tour LIKE %s OR type4_tour LIKE %s) OR start_hotdeals>=%s OR end_hotdeals<=%s ORDER BY tindex_tour ASC", GetSQLValueString($colname_rsSearch, "text"),GetSQLValueString($colname1_rsSearch, "int"),GetSQLValueString($colname3_rsSearch, "text"),GetSQLValueString($colname4_rsSearch, "text"),GetSQLValueString($colname5_rsSearch, "text"),GetSQLValueString($colname6_rsSearch, "text"),GetSQLValueString($colname7_rsSearch, "text"),GetSQLValueString($colname8_rsSearch, "date"),GetSQLValueString($colname9_rsSearch, "int"),GetSQLValueString($colname10_rsSearch, "text"));$query_limit_rsSearch = sprintf("%s LIMIT %d, %d", $query_rsSearch, $startRow_rsSearch, $maxRows_rsSearch);$rsSearch = mysql_query($query_limit_rsSearch, $tour) or die(mysql_error());$row_rsSearch = mysql_fetch_assoc($rsSearch);The first table named tour has tour description. The second table named hotdeals has dates that are associated with the tour. If you click any tour on site, the description is on the page. On the right hand side, you can see a table with dates, this is what I have in hotdeals table. I may be missing parenthesis, but that's where I always get the problems. Quote Link to comment Share on other sites More sharing options...
fenway Posted June 16, 2006 Share Posted June 16, 2006 Man, that code ain't pretty... but regardless, I still don't know what you mean by "unexpected results"... does each of the OR conditions alone produce the correct results? Quote Link to comment Share on other sites More sharing options...
saini Posted June 16, 2006 Author Share Posted June 16, 2006 What's not pretty in that code?Ok, I found out that DW went crazy and changed string type. I corrected the string type but the same result.Anyway, i changed post to get method to visually control everything. I am on my way and getting results. Hope I will get it over and change get to post again.Thanks anyway. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.