![]() | ||||||||
![]() |
Karte | Kalender | Suche | Bookmarks | Experte | FAQ |
ModuleDownloadSMFinder_Query_getUID4CatsAtrsGeoWird verwendet von:SMFinder_Query_analyzeSearch SMFinder_Query_find SMFinder_Query_getUID4CatsAtrsGeo Keine Erläuterungen gefunden. <?php /* published under GPL www.gnu.org/licenses/gpl.html */ function SMFinder_Query_getUID4CatsAtrsGeo($element,$cats,$atrs,$constraint,$lat_min,$lat_max,$lon_min,$lon_max,$firstpage,$limit){ /* Die Suchmaschine der Bizarren-Seiten.de hat die categories und attributes in separate Tabellen ausgelagert, deswegen muessen die Abfragen modifiziert werden. */ $atrConstraint="OR"; $dblink=mysql_connect($GLOBALS['dbserver'],$GLOBALS['dbuser'],$GLOBALS['dbpasswd']); if (!$dblink AND $GLOBALS['debug']){echo "<p>DB connect fehlgeschlagen!</p>server: ".$GLOBALS['dbserver']."<br>user: ".$GLOBALS['dbuser']."<br>pwd: ".$GLOBALS['dbpasswd'];} mysql_select_db($GLOBALS['dbname'],$dblink); if (!$dblink AND $GLOBALS['debug']){echo "<p>DB connect fehlgeschlagen!</p>".$GLOBALS['dbname'];} switch($element){ case "address": if ($GLOBALS['sitename']=="Bizarre-Medien"){ $request1="("; $cc=-1; for ($c=0;$c<count($cats);$c++){ if(!empty($cats[$c])){ $cc++; if ($cc>0){$request1.=" ".$atrConstraint." ";} $request1.="`categories`.`".$cats[$c]."` LIKE '1'"; } } #c $request1.=")"; $request2="("; $aa=-1; for ($a=0;$a<count($atrs);$a++){ if(!empty($atrs[$a])){ $aa++; if ($aa>0){$request2.=" ".$atrConstraint." ";} $request2.="`attributes`.`".$atrs[$a]."` LIKE '1'"; } } #a $request2.=")"; /* SM-Finder */ }else{ $request1="("; $cc=-1; for ($c=0;$c<count($cats);$c++){ if(!empty($cats[$c])){ $cc++; if ($cc>0){$request1.=" ".$atrConstraint." ";} $request1.="address.cats like '%".$cats[$c]."%'"; } } #c $request1.=")"; $request2="("; $aa=-1; for ($a=0;$a<count($atrs);$a++){ if(!empty($atrs[$a])){ $aa++; if ($aa>0){$request2.=" ".$atrConstraint." ";} $request2.="address.atrs like '%".$atrs[$a]."%'"; } } #a $request2.=")"; } $NoCats=$cc+1; $NoAtrs=$aa+1; if($NoCats>0 AND $NoAtrs>0){ $request12=$request1." ".$constraint." ".$request2; }else if($NoCats>0){ $request12=$request1; }else if($NoAtrs>0){ $request12=$request2; }else{ $request12=""; } if(empty($lat_min)){ $NoGeo=0; }else{ $NoGeo=1; $request3 = "adr.geoLat < ".$lat_max." AND adr.geoLat > ".$lat_min." AND adr.geoLon < ".$lon_max." AND adr.geoLon > ".$lon_min.""; } if(empty($limit)){ $request = "SELECT "; }else{ $request = "SELECT SQL_CALC_FOUND_ROWS "; } if ($GLOBALS['sitename']=="Bizarre-Medien"){ if($NoGeo==0 AND $NoCats+$NoAtrs>0){ if ($NoAtrs==0){ if ($GLOBALS['debug']){echo "<span style='color:silver'>cats</span>";} $request .= "address.uid,address.status,address.fn,categories.* "; $request .= "FROM address,categories "; $request .= "WHERE (address.UID = categories.UID "; $request .= "AND ".$request12.")"; }elseif ($NoCats==0){ if ($GLOBALS['debug']){echo "<span style='color:silver'>atrs</span>";} $request .= "address.uid,address.status,address.fn,attributes.* "; $request .= "FROM address,attributes "; $request .= "WHERE (address.UID = attributes.UID "; $request .= "AND ".$request12.")"; }else{ if ($GLOBALS['debug']){echo "<span style='color:silver'>cats + atrs</span>";} $request .= "address.uid,address.status,address.fn,categories.*,attributes.* "; $request .= "FROM address,categories,attributes "; $request .= "WHERE (address.UID = categories.UID AND address.UID = attributes.UID "; $request .= "AND ".$request12.")"; } }else if($NoGeo>0 AND $NoCats+$NoAtrs==0){ if ($GLOBALS['debug']){echo "<span style='color:silver'>geo</span>";} $request .= "address.uid,address.status,address.fn,adr.uid,adr.geoLat,adr.geoLon FROM address,adr WHERE address.uid=adr.uid AND ".$request3; }else if ($NoGeo>0 AND $NoAtrs==0){ if ($GLOBALS['debug']){echo "<span style='color:silver'>geo + cats</span>";} $request .= "address.uid,address.status,address.fn,categories.*,adr.uid,adr.geoLat,adr.geoLon "; $request .= "FROM address,categories,adr "; $request .= "WHERE (address.uid = adr.uid AND address.uid = categories.UID "; $request .= "AND ".$request12." AND ".$request3.")"; }else if ($NoGeo>0 AND $NoCats==0){ if ($GLOBALS['debug']){echo "<span style='color:silver'>geo + atrs</span>";} $request .= "address.uid,address.status,address.fn,attributes.*,adr.uid,adr.geoLat,adr.geoLon "; $request .= "FROM address,attributes,adr "; $request .= "WHERE (address.uid = adr.uid AND address.uid = attributes.UID "; $request .= "AND ".$request12." AND ".$request3.")"; }else{ if ($GLOBALS['debug']){echo "<span style='color:silver'>geo + cats + atrs</span>";} $request .= "address.uid,address.status,address.fn,categories.*,attributes.*,adr.uid,adr.geoLat,adr.geoLon "; $request .= "FROM address,categories,attributes,adr "; $request .= "WHERE (address.uid = adr.uid AND address.uid = categories.UID AND address.uid = attributes.UID "; $request .= "AND ".$request12." AND ".$request3.")"; } /* SM-Finder */ }else{ if($NoGeo==0 AND $NoCats+$NoAtrs>0){ if ($GLOBALS['debug']){echo "<span style='color:silver'>cats + atrs</span>";} $request .= "address.uid,address.status,address.fn,address.cats,address.atrs "; $request .= "FROM ".$GLOBALS['DBTaddress']." WHERE ".$request12; }else if($NoGeo>0 AND $NoCats+$NoAtrs==0){ if ($GLOBALS['debug']){echo "<span style='color:silver'>geo</span>";} $request .= "address.uid,address.status,address.fn,adr.uid,adr.geoLat,adr.geoLon "; $request .= "FROM ".$GLOBALS['DBTaddress'].",".$GLOBALS['DBTadr']." WHERE address.uid=adr.uid AND ".$request3; }else{ if ($GLOBALS['debug']){echo "<span style='color:silver'>cats + atrs + geo</span>";} $request .= "address.uid,address.status,address.fn,address.cats,address.atrs,adr.uid,adr.geoLat,adr.geoLon "; $request .= "FROM ".$GLOBALS['DBTaddress'].",".$GLOBALS['DBTadr']." WHERE (address.uid=adr.uid) AND ".$request12." AND ".$request3; } } if(empty($limit)){ $request .= " ORDER BY address.fn ASC"; }else{ $request .= " ORDER BY address.fn ASC LIMIT ".$firstpage.",".$limit; } #SELECT address.uid,address.atrs,adr.uid,adr.geoLat FROM `address`,adr WHERE address.uid=adr.uid AND address.atrs like '%Lack%' AND adr.geoLat>10 #SELECT address.uid,address.status,address.fn,categories.UID,attributes.UID FROM address,categories,attributes WHERE ((address.UID = categories.UID OR address.UID=attributes.UID) AND (`categories`.`Geschaeft` like '1' OR `categories`.`Shop` like '1')AND (`attributes`.`Latex` like '1')) if($GLOBALS['debug']){ echo "<aj>SMFinder_Query_getUID4CatsAtrsGeo.php</aj> ".$request."<br>"; #exit(1); } $UIDs=array(); $status=array(); $names=array(); if(isset($_GET['status'])){$statusClaim=$_GET['status'];}else{$statusClaim="";} $result1=mysql_query($request); $request2="SELECT FOUND_ROWS()"; if ($result2=mysql_query($request2)){ $resultArray = mysql_fetch_array($result2); $count = $resultArray['FOUND_ROWS()']; $u=-1; if ($count>0){ while($SqlEntry=mysql_fetch_row($result1)){ if ($u=-1 OR $SqlEntry[0]!=$UIDs[$u]){ $u++; array_push($UIDs, $SqlEntry[0]); array_push($status, $SqlEntry[1]); array_push($names, $SqlEntry[2]); } } } }else{ if($GLOBALS['debug']){echo "Fehler=".mysql_error()."<br>";} } mysql_close($dblink); break; /* =================== EVENT =================== */ case "event": $NoCats=count($cats); $request1=""; for ($c=0;$c<$NoCats;$c++){ if ($c>0){$request1.=" OR ";} $request1.="event.cats like '%".$cats[$c]."%'"; } #c $NoAtrs=count($atrs); $request2=""; for ($a=0;$a<$NoAtrs;$a++){ if ($a>0){$request2.=" OR ";} $request2.="event.atrs like '%".$atrs[$a]."%'"; } #a if(empty($lat_min)){ $NoGeo=0; }else{ $NoGeo=1; $request3 = "event.geoLat < ".$lat_max." AND event.geoLat > ".$lat_min." AND event.geoLon < ".$lon_max." AND event.geoLon > ".$lon_min; } if($NoCats==0){ $request12=$request2; }else if($NoAtrs==0){ $request12=$request1; }else{ $request12="(".$request1." ".$constraint." ".$request2.")"; } if(empty($limit)){ $request = "SELECT "; }else{ $request = "SELECT SQL_CALC_FOUND_ROWS "; } if($NoGeo==0 AND $NoCats+$NoAtrs>0){ $request .= "event.uid,event.status,event.summary,event.cats,event.atrs "; $request .= "FROM ".$GLOBALS['DBTevent']." WHERE ".$request12; }else if($NoGeo>0 AND $NoCats+$NoAtrs==0){ $request .= "event.uid,event.status,event.summary,event.geoLat,event.geoLon "; $request .= "FROM ".$GLOBALS['DBTevent']." WHERE ".$request3; }else{ $request .= "event.uid,event.status,event.summary,event.cats,event.atrs,event.geoLat,event.geoLon "; $request .= "FROM ".$GLOBALS['DBTevent']." WHERE ".$request12." AND ".$request3; } if(empty($limit)){ $request .= " ORDER BY event.summary ASC"; }else{ $request .= " ORDER BY event.summary ASC LIMIT ".$firstpage.",".$limit; } if($GLOBALS['debug']){ echo "<aj>SMFinder_Query_getUID4CatsAtrsGeo.php</aj> ".$request."<br>"; } $UIDs=array(); $status=array(); $names=array(); if(isset($_GET['status'])){$statusClaim=$_GET['status'];}else{$statusClaim="";} $result1=mysql_query($request); $request2="SELECT FOUND_ROWS()"; if ($result2=mysql_query($request2)){ $resultArray = mysql_fetch_array($result2); $count = $resultArray['FOUND_ROWS()']; while($SqlEntry=mysql_fetch_row($result1)){ array_push($UIDs, $SqlEntry[0]); array_push($status, $SqlEntry[1]); array_push($names, $SqlEntry[2]); } }else{ if($GLOBALS['debug']){echo "Fehler=".mysql_error()."<br>";} } mysql_close($dblink); break; /* ==================== LINK ==================== */ case "link": $dbtabelle=$GLOBALS['DBTlink']; break; } if($GLOBALS['debug']){ echo "<span style='color:silver;'>"; for ($u=0;$u<count($UIDs);$u++){ echo $u." ".$UIDs[$u]."<br>"; } #u echo "</span><br>"; } return array($UIDs,$status,$names,$count); } ?> IndexFür die Funktionalität des SM-Finders sind viele kleine Tools notwendig. Alle Funktionen beginnen mit SMFinder_ um deren Ursprung zu kennzeichnen. Dem schließt sich die Funktionsgruppe, z.B. Geo_ an, gefolgt vom eigentlichen Namen, der die Aufgabe der Funktion widerspiegeln soll, z.B. PLZ2DB. Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden. |
![]() |
Die hier zur Verfügung gestellten Informationen basieren auf dem Austauschnetzwerk des SM-Finders.
Änderungen an eurem Datensatz könnt ihr z.B. beim Arbeitskreis SM-Finder vornehmen.
Bei Fragen und Problemen schreibt bitte an: sm-finderki-co.org
Der AK-SM-Finder ist korporatives Mitglied der BVSM e.V.
Für Aktualität und Richtigkeit der dargebotenen Infomationen kann keine Gewähr übernommen werden!