note 84463 rejected from control-structures.foreach by danbrown

From: Date: Tue, 15 Jul 2008 14:01:30 +0000
Subject: note 84463 rejected from control-structures.foreach by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-141535@lists.php.net to get a copy of this message
Note Submitter: harold dot tor at ei-ie dot org ---- Hi, I try to use foreach to print out a part of an mysql query, but always the last one cancels the previous one out. Please advise me on what to do: $searchterm=$_POST['searchterm']; if ($type) { foreach($_POST['type'] as $type) { $search_type = "AND type = '$type' "; } } else { $search_type = " "; } if ($year) { foreach($_POST['year'] as $year) { $search_year = "AND DATE_FORMAT(dateofissue,'%Y') = '$year' "; } } else { $search_year = " "; } if ($theme) { foreach($_POST['theme'] as $theme) { $search_theme = "AND keywords LIKE '%*$theme*%' "; } } else { $search_theme = " "; } if ($geography) { foreach($_POST['geography'] as $geography) { $search_geography = "AND geography = '$geography' "; } } else { $search_geography = " "; } $search_query = "SELECT * FROM library WHERE (title_en LIKE '%$searchterm%' OR fulltext_en LIKE '%$searchterm%') $search_type $search_year $search_theme $search_geography ORDER BY dateofissue DESC, type DESC, title_en DESC"; The original values come from a form which one fills in. So geography[] is parsed to this and it can have one or more values. For example, if geography[]=africa and geography[]=asia, the query will only show "AND geography=asia" as the latter comes later. However the thing would work if I put the variable in the URL, like thisfile.php?geography[]=africa&geography[]=asia Can someone help me?

« previous php.notes (#141535) next »