<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=us-ascii">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 77.95pt 1.0in 77.95pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:1820656223;
        mso-list-type:hybrid;
        mso-list-template-ids:263357998 67698703 67698689 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple>

<div class=Section1>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>I found the same problem and made it work with couple of small fix and
it works for me now.<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face="Courier New"><span style='font-size:10.0pt'><span
style='mso-list:Ignore'>1.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></font></span></span></font><![endif]>I
found that the parsing part of the search string was inside a for loop for each
layer hence $searchstring = &quot;\&quot;&quot;.$szSearchfield.&quot;~*
'&quot;.$searchstring.&quot;'\&quot;&quot;; kept expanding for each for loop. I
fixed that by <o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp; $psearch = $searchstring; <b><font
color=blue><span style='color:blue;font-weight:bold'>// Around line 67<o:p></o:p></span></font></b></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if($oLayer-&gt;connectiontype
== MS_POSTGIS){ // <b><font color=blue><span style='color:blue;font-weight:
bold'>Around Line 144</span></font></b><o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $searchstring
= &quot;($szSearchfield ilike '%$psearch%')&quot;; <o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; } else {<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $searchstring
= &quot;\&quot;&quot;.$szSearchfield.&quot;~*
'&quot;.$psearch.&quot;'\&quot;&quot;; <o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face="Courier New"><span style='font-size:10.0pt'><span
style='mso-list:Ignore'>2.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></font></span></span></font><![endif]>Also
modified the search string for postgis layer little bit. Also included in code
above.<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><font
size=2 face="Courier New"><span style='font-size:10.0pt'><span
style='mso-list:Ignore'>3.<font size=1 face="Times New Roman"><span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp; </span></font></span></span></font><![endif]>Around
line 180 where the heading of the field were retrieved, <b><span
style='font-weight:bold'>oResultCache</span></b> was grabbing the result using
the layer index, so it there was just 1 result and the layer index was 3 it
produced a error. I fixed that by changing such that it grabs the first result<o:p></o:p></p>

<p class=MsoPlainText style='margin-left:1.0in'><b><font size=2 color=blue
face="Courier New"><span style='font-size:10.0pt;color:blue;font-weight:bold'>Orginal<o:p></o:p></span></font></b></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp; if ($totR) {<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oResultCache
= $oLayer-&gt;getResult($i);<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oShape =
$oLayer-&gt;getShape($oResultCache-&gt;tileindex, $oResultCache-&gt;shapeindex);<o:p></o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.75in'><font size=2 face="Courier New"><span
style='font-size:10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText style='margin-left:.25in'><b><font size=2 color=blue
face="Courier New"><span style='font-size:10.0pt;color:blue;font-weight:bold'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Modified<o:p></o:p></span></font></b></p>

<p class=MsoPlainText style='margin-left:.25in'><b><font size=2 color=blue
face="Courier New"><span style='font-size:10.0pt;color:blue;font-weight:bold'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></b>if
($totR) {<o:p></o:p></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oResultCache
= $oLayer-&gt;getResult(0);<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $oShape
= $oLayer-&gt;getShape($oResultCache-&gt;tileindex,
$oResultCache-&gt;shapeindex);<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>I was working from version 1.5. I have also attached the php file
along. But I think it is more efficient using within() function rather than
querybyshape.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>- kumar<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>-----Original Message-----<br>
From: ka-map-users-bounces@lists.maptools.org
[mailto:ka-map-users-bounces@lists.maptools.org] On Behalf Of Lorenzo Becchi<br>
Sent: Friday, June 15, 2007 12:26 PM<br>
To: ka-map-users@lists.maptools.org<br>
Subject: [ka-Map-users] Problem with Search in KAMAP with Postgis</span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; I will hazard a guess (although I have not checked the code) that
the <o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; search<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; function is using the MapScript queryByShape method, which doesn't
<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; work when<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; using PostGIS for some reason. You can easily use PostGIS to
perform a<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; similar function using within() which when proceeded by an extent
query<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>&gt; actually seems to be more efficient than queryByShape anyway.<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>Thanks Chris,<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>who would be so kind to make a patch for this?<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>ciao<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>Lorenzo<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>_______________________________________________<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>ka-Map-users mailing list<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>ka-Map-users@lists.maptools.org<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'>http://lists.maptools.org/mailman/listinfo/ka-map-users<o:p></o:p></span></font></p>

<p class=MsoPlainText><font size=2 face="Courier New"><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>