[Mapbender-commits] r5565 - branches/2.6/http/php

svn_mapbender at osgeo.org svn_mapbender at osgeo.org
Sat Feb 20 09:51:32 EST 2010


Author: astrid_emde
Date: 2010-02-20 09:51:32 -0500 (Sat, 20 Feb 2010)
New Revision: 5565

Modified:
   branches/2.6/http/php/mod_gazetteerMetadata_search.php
Log:
error in SQl ;

Modified: branches/2.6/http/php/mod_gazetteerMetadata_search.php
===================================================================
--- branches/2.6/http/php/mod_gazetteerMetadata_search.php	2010-02-20 14:50:52 UTC (rev 5564)
+++ branches/2.6/http/php/mod_gazetteerMetadata_search.php	2010-02-20 14:51:32 UTC (rev 5565)
@@ -8,7 +8,17 @@
 $user_id = $_SESSION["mb_user_id"];
 $query = stripslashes($_REQUEST["search"]);
 $srs = stripslashes($_REQUEST["srs"]);
+$searchColumnsWms = $_REQUEST["searchColumnsWms"];
+$searchColumnsLayer = $_REQUEST["searchColumnsLayer"];
 
+if ($searchColumnsWms && !preg_match("/^[a-zA-Z_\-, ]+$/", $searchColumnsWms)) {
+	echo "[]"; die;
+}
+
+if ($searchColumnsLayer && !preg_match("/^[a-zA-Z_\-, ]+$/", $searchColumnsLayer)) {
+	echo "[]"; die;
+}
+
 if (!preg_match("/^[a-zA-Z_\- ]+$/", $query)) {
 	echo "[]"; die;
 }
@@ -55,7 +65,22 @@
 		array_push($v, $mywms[$i]);
 		array_push($t, 'i');   
 	}
-	$sql_wms .= ") AND (wms_title ILIKE '%".$query."%' OR wms_abstract ILIKE '%".$query."%') ORDER BY wms_title";
+	
+	$sql_wms .= ") AND (";
+	if($searchColumnsWms == "") {
+		$sql_wms .= "wms_title ILIKE '%".$query."%' OR wms_abstract ILIKE '%".$query."%'";
+	}
+	else{
+		$wmsColumnArray = split(",", $searchColumnsWms);
+		for($j = 0; $j < count($wmsColumnArray); $j++) {
+			if ($j > 0) {
+				$sql_wms .= " OR ";
+			}
+			$sql_wms .= trim($wmsColumnArray[$j]) . " ILIKE '%".$query."%'";
+		}
+	}
+	
+	$sql_wms .= ") ORDER BY wms_title";
 	$res_wms = db_prep_query($sql_wms,$v,$t);
 
 	while ($row = db_fetch_array($res_wms)) {
@@ -95,14 +120,27 @@
 		array_push($t, 'i');   
 	}
 
-	$sql_layer .= ") AND (" . 
-		"layer_title ILIKE '%".$query."%' OR " . 
-		"layer_name ILIKE '%".$query."%' OR " . 
-		"layer_abstract ILIKE '%".$query."%' OR " . 
-		"kw.keyword ILIKE '%".$query."%') ";
-	$sql_layer .= "ORDER BY l.layer_title;";
+	$sql_layer .= ") AND (";
+	if($searchColumnsLayer == "") {
+		$sql_layer .= 	"layer_title ILIKE '%".$query."%' OR " . 
+						"layer_name ILIKE '%".$query."%' OR " . 
+						"layer_abstract ILIKE '%".$query."%' "; 
+	}
+	else{
+		$layerColumnArray = split(",", $searchColumnsLayer);
+		for($k = 0; $k < count($layerColumnArray); $k++) {
+			if ($k > 0) {
+				$sql_layer .= " OR ";
+			}
+			$sql_layer .= trim($layerColumnArray[$k]) . " ILIKE '%".$query."%'";
+		}
+	}
+	
+	$sql_layer .= " OR kw.keyword ILIKE '%".$query."%') ORDER BY l.layer_title;";
+	
 	$res_layer = db_prep_query($sql_layer,$v,$t);
 
+
 	while ($row = db_fetch_array($res_layer)) {
 		array_push($obj, array(
 			'wms_getcapabilities' => $row['wms_getcapabilities'], 



More information about the Mapbender_commits mailing list