Hi,

Ps.. I'm repeating this again becos I was told my facts were not enough for a better understanding of the issue I am facing.... therefore...

Issue:

For my advanced search function (to search by text - option ['title/director'] AND/OR text - [release date] AND/OR checkboxes - [ratings 1 to 5]), I must do a foreach in order to achieve results according to the selected option, inputs and/or selected checkboxes.

However, I was having problems in retrieving the checkboxes - [ratings] result.. thus I did the foreach loop for the checkboxes separately. Thankfully it works but now I'm not sure how I can put the codes into one.. =( ... Instead of two foreach which will produce results that are separated from one another, I want to have just one foreach which will produce results that will be restricted by the text option AND/OR checkboxes. (Altogether)

This is the first foreach for the text option [title/director] AND/OR text - [release date]

$sql = "SELECT * FROM movie WHERE publish=1 AND ";

$counter = 0; //checks whether an sql statement is a following or a first

foreach($_POST as $key => $value){

  if($key == "search"){
	if(empty($value)){
	$keyword = "";
	}else{
	$keyword = $value;
	}
  }else if($key == "searchby"){
    if(empty($keyword)){
	}else{
	$sql .= "$value LIKE '%$keyword%'";
	$counter = $counter + 1;
	}
  }else if($key == "Release_date"){
    if(empty($value)){
	}else{
	if($counter > 0){
	$sql .= "AND (Release_date >='$value')";
	$counter = $counter + 1;
	}else{
	$sql .= "(Release_date >='$value')";
	$counter = $counter + 1;
	}
	}
  }else if($key == "Release_date2"){
    if(empty($value)){
	}else{
	if($counter > 0){
	$sql .= " AND (Release_date >='$date1') AND (Release_date <='$value') Order by Release_date ASC";
	$counter = $counter + 1;
	}else{
	$sql .= "(Release_date >='$date1') AND (Release_date <='$value') Order by Release_date ASC";
    }

This is the second foreach for ratings 1 -5 (checkboxes)

if(!empty($_POST["rating"]))  {

$c=count($_POST["rating"])-1;
$q=0;
foreach($_POST["rating"] AS $keys)
{
    $in_id.="$keys";
    if($q==$c)
    break;
    else
    $in_id.=",";

    $q++;
}

$sql="SELECT * FROM movie WHERE rating IN ($in_id) ORDER BY rating ASC";
    Write a Reply...