<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16640" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT size=2>well, the FROM () seems empty, thats will certainly not 
work.</FONT></DIV>
<DIV><FONT size=2>add</FONT></DIV>
<DIV><FONT size=2>print '['.$sql.']';</FONT></DIV>
<DIV><FONT size=2>on line 337, just after "&nbsp;if (!is_null($number)) { 
"</FONT></DIV>
<DIV><FONT size=2>and let me know what's the output</FONT></DIV>
<DIV><FONT size=2></FONT>&nbsp;</DIV>
<DIV><FONT size=2>regards</FONT></DIV>
<DIV><FONT size=2>Oliver</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=thomas.gratier@gmail.com 
  href="mailto:thomas.gratier@gmail.com">thomas gratier</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A 
  title=cartoweb-users@lists.maptools.org 
  href="mailto:cartoweb-users@lists.maptools.org">cartoweb-users@lists.maptools.org</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, May 27, 2008 9:08 AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> [Cartoweb-users] Plugin search 
  problem : misconfiguration orframewok problem</DIV>
  <DIV><BR></DIV>Hello all,<BR><BR>I need some help. I'm configuring "basic 
  usage" of the search plugin and I encounter this message<BR><BR>CartoWeb 
  version: 3.4.0 [$Revision: 1.7 $]<BR>class:&nbsp;&nbsp; 
  CartocommonException<BR>message:&nbsp;&nbsp; Failed executing total SQL query 
  Message: DB Error: unknown error&nbsp; Userinfo: SELECT COUNT(*) FROM () 
  [nativecode=ERROR:&nbsp; subquery in FROM must have an alias<BR>HINT:&nbsp; 
  For example, FROM (SELECT ...) [AS] foo.]<BR>Backtrace:<BR><BR>file: 342 - 
  C:\ms4w\apps\cartoweb3\plugins\search\common\Search.php<BR>call: 
  Utils::checkDbError(Object(DB_Error), "Failed executing total SQL 
  query")<BR><BR>file: 269 - 
  C:\ms4w\apps\cartoweb3\plugins\search\client\ClientSearch.php<BR>call: 
  DbResultProvider-&gt;getResult(Object(SearchRequest))<BR><BR>file: 265 - 
  C:\ms4w\apps\cartoweb3\client\ClientPluginHelper.php<BR>call: 
  ClientSearch-&gt;initializeResult(Null)<BR><BR>file: UNKNOWN - 
  UNKNOWN<BR>call: 
  ServerCallerHelper-&gt;initializeResultHelper(Object(ClientSearch), 
  Object(MapResult))<BR><BR>....<BR><BR>This message seems to say for the count 
  in Search.php I need to add an "as foo" at line 342 but I'm not supposed to 
  touch this code : I suppose it works. (If I correct it, it doesn't work too: 
  the GUI plugin search stop) <BR><BR>Someone got an idea about my problem. Does 
  it come from from my configuration files or from a bug from the 
  framework.<BR>You'll find below my configuration files search.ini, search.tpl, 
  Search.ajax.js, search_results.tpl and my *.map<BR><BR>I've activated search 
  plugins on both side (server and client), I've inserted the code for the tpl 
  and the ajax in cartoclient.tpl<BR><BR>############## search.ini 
  #########################<BR><BR>;name search configuration<BR>dsn = 
  pgsql://user_name:password@localhost:5432/database_name<BR>encodingContext = 
  search_parc<BR>config.parc_2.provider.type = 
  fulltextTable<BR>config.parc_2.provider.table = 
  parc_2<BR>config.parc_2.provider.aliases = 
  idnum,idnum,ident,ident,feuille,feuille,co_se_fe,co_se_fe,lieudit,lieudit,tex2,tex2,idu,idu,nature,nature,classe,classe,tex,tex,codm,codm,coar,coar,supf,supf,indp,indp,ncompte,ncompte,proprio,proprio,surf_gra,surf_gra,ctr_surf,ctr_surf,cad_dif,cad_dif,insee,insee,comparc,comparc,touche,touche,grpro,grpro,commune,commune,numprop,numprop,trouv,trouv,plu,plu<BR><A 
  href="http://config.parc_2.provider.id">config.parc_2.provider.id</A> = 
  gid<BR>config.parc_2.provider.columns = 
  gid,ident,ncompte,proprio,<BR>config.parc_2.provider.fulltextColumns = 
  ident,ncompte,proprio<BR>config.parc_2.provider.sortColumn = 
  ident<BR>config.parc_2.provider.sortDirection = 
  asc<BR>config.parc_2.provider.sortPriorities = ident, ncompte, 
  proprio<BR>config.parc_2.provider.labels =&nbsp; ident, 
  proprio<BR>config.parc_2.formatter.type = 
  smarty<BR>config.parc_2.formatter.template = 
  search_results<BR><BR>############## client.ini 
  #########################<BR><BR>;!!!Do not edit this file, it is generated. 
  Edit the .in instead!!!&nbsp;&nbsp; <BR>cartoclientBaseUrl = "<A 
  href="http://www.i-sig.biz:8080/cartoweb3/htdocs">http://www.i-sig.biz:8080/cartoweb3/htdocs</A>"&nbsp; 
  <BR>profile = development<BR><BR><BR>ajaxOn = true<BR>mapId = 
  chapareillan<BR><BR>;Set encoding for files<BR><BR>EncoderClass.search_parc = 
  EncoderISO<BR>&nbsp;&nbsp;&nbsp; <BR>showProjectChooser = false<BR><BR>; ## 
  Plugins ##&nbsp;&nbsp;&nbsp; <BR><BR>loadPlugins = 
  layerReorder,edit,auth,locate,search<BR><BR>toolbarRendering = 
  outline&nbsp;&nbsp; <BR><BR>langList = <BR><BR>toolPickerOn = 
  true<BR><BR>viewOn = true<BR>viewStorage = file<BR>viewablePlugins = 
  layers,query,edit,auth,search<BR>viewMetas = author<BR>viewAuth = 
  all<BR><BR>############## extract of myproject.map 
  #########################<BR><BR>LAYER<BR>&nbsp; STATUS 
  ON<BR>&nbsp;&nbsp;&nbsp; NAME "parc_2"<BR>&nbsp;&nbsp;&nbsp; TYPE 
  POLYGON<BR>&nbsp;&nbsp;&nbsp; CONNECTIONTYPE postgis<BR>&nbsp;&nbsp;&nbsp; 
  CONNECTION "user=user_name password=password host=localhost 
  dbname=database_name"<BR>&nbsp;&nbsp;&nbsp; DATA "the_geom from (select * from 
  parc_2) as foo USING UNIQUE gid USING SRID=27572"<BR>&nbsp;&nbsp;&nbsp; 
  TEMPLATE "ttt"<BR>&nbsp;&nbsp;&nbsp; 
  METADATA<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "wms_title" 
  "parc_2"<BR>&nbsp;&nbsp;&nbsp; &nbsp; "exported_values" 
  "recenter_name_string,id_attribute_string"<BR>&nbsp;&nbsp;&nbsp; &nbsp; 
  "recenter_name_string" "ident"<BR>&nbsp;&nbsp;&nbsp; &nbsp; 
  "id_attribute_string" "gid|string" # query<BR>&nbsp;&nbsp;&nbsp; &nbsp; 
  "query_returned_attributes" "gid idnum ident feuille co_se_fe lieudit tex2 idu 
  nature classe tex codm coar supf indp ncompte proprio surf_gra ctr_surf 
  cad_dif insee comparc touche grpro commune numprop 
  trouv"<BR>&nbsp;&nbsp;&nbsp; END<BR>&nbsp;&nbsp;&nbsp; STATUS 
  DEFAULT<BR>&nbsp;&nbsp;&nbsp; TRANSPARENCY 100<BR>&nbsp;&nbsp;&nbsp; 
  PROJECTION<BR>&nbsp;&nbsp;&nbsp; 'init=epsg:27572'<BR>&nbsp;&nbsp;&nbsp; 
  END<BR>&nbsp;&nbsp;&nbsp; CLASS<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; NAME 
  'parc_2' <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  STYLE<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SYMBOL 0 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SIZE 10 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OUTLINECOLOR 0 0 
  0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COLOR 255 255 
  255<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; END<BR>&nbsp;&nbsp;&nbsp; 
  END<BR>&nbsp; END<BR><BR>############## search.tpl 
  #########################<BR><BR>&lt;div 
  id="search_div"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;fieldset&gt;&lt;legend&gt;{t}Recherche parcellaire{/t}&lt;/legend&gt; 
  &lt;br/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;table 
  width="100%"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  {t}Parcelle: 
  {/t}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="text" id="search_ident" 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  name="search_ident" size="13"/&gt; 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  {t}Proprietaire par compte: 
  {/t}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;td&gt; 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="text" id="search_ncompte" 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  name="search_ncompte" size="13"/&gt; 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  {t}Proprietaire par nom: 
  {/t}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;td&gt; 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="text" id="search_proprio" 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  name="search_proprio" size="13"/&gt; 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/tr&gt;<BR><BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/table&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;p&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  <BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="submit" value="{t}Search{/t}" 
  class="form_button"<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  onclick="javaScript: CartoWeb.trigger('Search.DoIt'); return 
  false;"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="hidden" id="search_config" name="search_config" value="parc_2" 
  /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="hidden" id="search_sort_column" name="search_sort_column" 
  value="ident"/&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="hidden" id="search_sort_direction" 
  name="search_sort_direction" value="asc" 
  /&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;input type="hidden" id="search_number" name="search_number" 
  value="10"/&gt;<BR><BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;div 
  id="search_results_div"&gt;&lt;/div&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/p&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/fieldset&gt;<BR>&nbsp;&nbsp;&nbsp; &lt;/div&gt;<BR><BR>############## 
  search_results.tpl #########################<BR><BR>{if $table-&gt;numRows 
  &gt; 0}<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;table 
  class="yourCssClass"&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &lt;th&gt;{t}Id{/t}&lt;/th&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &nbsp;&nbsp;&nbsp; {foreach from=$table-&gt;columnIds 
  item=column}<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &lt;th&gt; &lt;a href="JavaScript: 
  order('{$column}');"&gt;{t}{$column}{/t}&lt;/a&gt;&lt;/th&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  <BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  {/foreach}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {foreach 
  from=$table-&gt;rows 
  item=row}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;tr&gt;<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &lt;td&gt;{$row-&gt;rowId}&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  {foreach from=$row-&gt;cells 
  item=value}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;td&gt;&lt;a href="JavaScript: 
  recenter('{$row-&gt;rowId}');"&gt;{$value}&lt;/a&gt;&lt;/td&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  {/foreach}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &lt;/tr&gt;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  {/foreach}<BR>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 
  &nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp; &lt;/table&gt;<BR>&nbsp;&nbsp;&nbsp; 
  &nbsp;<BR>{else}<BR>&nbsp;&nbsp;&nbsp;&nbsp; {t}No 
  results{/t}<BR>{/if}<BR><BR>############## Search.ajax.js 
  #########################<BR><BR>AjaxPlugins.Search = {<BR>&nbsp; 
  <BR>&nbsp;&nbsp;&nbsp; handleResponse: function(pluginOutput) 
  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //should be the same value as 
  the input search_config<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
  (pluginOutput.htmlCode.parc_2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  $('search_results_div').innerHTML = 
  pluginOutput.htmlCode.parc_2;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  &nbsp;<BR>&nbsp;&nbsp;&nbsp; } &nbsp;<BR>};<BR><BR>&nbsp;&nbsp;&nbsp; 
  /*<BR>&nbsp;&nbsp;&nbsp; * Search plugin's Actions<BR>&nbsp;&nbsp;&nbsp; 
  */<BR><BR>&nbsp;&nbsp;&nbsp; AjaxPlugins.Search.Actions = 
  {};<BR><BR>&nbsp;&nbsp;&nbsp; AjaxPlugins.Search.Actions.DoIt = 
  {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; buildPostRequest: function(argObject) 
  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 
  AjaxHandler.buildPostRequest();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<BR>&nbsp;&nbsp;&nbsp; };<BR><BR>&nbsp;&nbsp;&nbsp; function order(column) 
  {<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (column != 
  $('search_sort_column').value) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  $('search_sort_column').value = 
  column;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  $('search_sort_direction').value = 'asc';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
  else {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if 
  ($('search_sort_direction').value == 'asc') 
  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  $('search_sort_direction').value = 
  'desc';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } else 
  {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  $('search_sort_direction').value = 
  'asc';<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  }<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  CartoWeb.trigger('Search.DoIt')<BR>&nbsp;&nbsp;&nbsp; 
  }<BR><BR>&nbsp;&nbsp;&nbsp; function 
  recenter(id){<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($('search_config').value 
  == 'parc_2') {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //id to recenter, 
  be sure there is a hidden input with that name and 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //id in your template! if not, 
  add it<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  $('id_recenter_ids').value = 
  id;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* if the search 
  database table name is the same as the related layer 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; to recenter on, you can set it 
  as below<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; be sure there is a 
  hidden input with that name and id in your template! 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if not, add it 
  */<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; $('id_recenter_layer').value 
  = $('search_config').value;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  /* do not use the recenter_scale parameter if you recenter on ids, 
  <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; only use it with recenter on 
  x,y.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; you can set the recenter 
  scale in location.ini on server side 
  */<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* do not use the 
  recenter_doit parameter if you recenter on 
  ids,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; only use it with recenter 
  on x,y. */<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  CartoWeb.trigger('Location.Recenter');<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } 
  <BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp; &nbsp;function 
  search(config) {<BR>&nbsp;&nbsp; &nbsp;<BR>&nbsp;&nbsp;&nbsp; 
  $('search_config').value = config;<BR>&nbsp;&nbsp;&nbsp; if (config == 
  'parc_2') {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  $('search_number').value = 10;<BR>&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp; 
  &nbsp;<BR>&nbsp;&nbsp;&nbsp; 
  CartoWeb.trigger('Search.DoIt');<BR><BR><BR>Thanks for any help<BR><BR>Thomas 
  G<BR>
  <P>
  <HR>

  <P></P>_______________________________________________<BR>Cartoweb-users 
  mailing 
  list<BR>Cartoweb-users@lists.maptools.org<BR>http://lists.maptools.org/mailman/listinfo/cartoweb-users<BR></BLOCKQUOTE></BODY></HTML>