2 datenbanken verknuepfen - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Martin (124 Beiträge) am Donnerstag, 8.August.2002, 15:18.
    2 datenbanken verknuepfen

      Hej!
      Ich will 2 Datenbanken verknuepfen: von der einen ( "sights") soll der Ort ausgegeben werden, aus der anderen Datenbank ( "location") die zugehörigen geogr. Koordinaten dieses Ortes. Leider zeigt die Ausgabeseite fuer alle Orte nur die Koordinaten des 1. Datensatzes der Koordinatenbatenbank an:
      ___________________________________________________
      <perl> 
      get "Id==*", "sights";
      out "<center><H4>";
      while(get_next("sights"))
      {
      out "| <a href=\"#$Id\" target=_self>$Title $Ort</a>|";
      get "City==$Ort", "location";
      out "$latitud";
      }
      out "</center></H4>";
      </perl> 
      
      _________________________________________________

      Das ganze soll dann noch weiter ausgebaut werden, aber ich glaube an dieser stelle klemmts...
      Link:
      http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/open_loc

      $Ort und $City sind dabei die korrespondierenden Felder ( sollen meist identischen Inhalt haben)
      

      Hat jemand ne idee?
      Danke fuer die Hilfe - Gruss Martin


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Martin (124 Beiträge) am Donnerstag, 8.August.2002, 15:18.
    2 datenbanken verknuepfen

      Hej!
      Ich will 2 Datenbanken verknuepfen: von der einen ( "sights") soll der Ort ausgegeben werden, aus der anderen Datenbank ( "location") die zugehörigen geogr. Koordinaten dieses Ortes. Leider zeigt die Ausgabeseite fuer alle Orte nur die Koordinaten des 1. Datensatzes der Koordinatenbatenbank an:
      ___________________________________________________
      <perl> 
      get "Id==*", "sights";
      out "<center><H4>";
      while(get_next("sights"))
      {
      out "| <a href=\"#$Id\" target=_self>$Title $Ort</a>|";
      get "City==$Ort", "location";
      out "$latitud";
      }
      out "</center></H4>";
      </perl> 
      
      _________________________________________________

      Das ganze soll dann noch weiter ausgebaut werden, aber ich glaube an dieser stelle klemmts...
      Link:
      http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/open_loc

      $Ort und $City sind dabei die korrespondierenden Felder ( sollen meist identischen Inhalt haben)
      

      Hat jemand ne idee?
      Danke fuer die Hilfe - Gruss Martin

     Antworten

    Beitrag von Sander (8133 Beiträge) am Donnerstag, 8.August.2002, 16:03.
    Re: 2 datenbanken verknuepfen

      bearbeite vor dem get den Ort wegen leerzeichen
      $Ort=~s/ /\\ /g;
      

      sind sortierungen eingestellt?

      Sander

     Antworten

    Beitrag von Martin (124 Beiträge) am Freitag, 9.August.2002, 08:16.
    Re: 2 datenbanken verknuepfen - neue Frage

      Hej und Danke fuer die schnelle Hilfe, Sander!

      Diese Verknuepfung klappt jetzt wie gewuenscht. Habe nun aber das nächste Problem:
      Ich will in einem Popup eine Karte anzeigen mit dem betreffenden Ort eingezeichnet. Das Feld Ort der DB "sights" soll mit dem Feld City der DB "location" verknuepft werden. Hier das gleiche Problem: ständig wird nur der erste Datensatz angezeigt. Sortierung ist in der DB eingestellt, die Leerzeichenbearbeitung ( siehe vorigen Tip) habe ich hier auch vorangestellt. Sicher ist etwas mit der Uebergabe der daten verkehrt:
      __________________________________________

      <a name=$Id><a href=#x$Id title=\"zeige $Ort auf Karte...\" onclick=window.open('http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/locate&City~=$Ort','$Id','dependent=yes,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,width=180,height=200,left=150,top=100')
      target=_self>zeige...</a>
      
      __________________________________________

      Die Seite von der ich die kleine karte aufrufe:

      http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/open_loc

      Die Seie fuer das Karten- Popup:

      http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/locate

      Hat jemand ne Idee? Danke, Martin

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 9.August.2002, 09:28.
    Re: 2 datenbanken verknuepfen - neue Frage

      zeig mal den kompletten Code

     Antworten

    Beitrag von Martin (124 Beiträge) am Freitag, 9.August.2002, 12:45.
    Re: 2 datenbanken verknuepfen - neue Frage

      Hej!
      Hier ist der Code fuer die Seite, von der die Koordinaten aufgerufen werden ( http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/open_loc):

      ==============================================================
      <html><head><title>sights</title>
      <SCRIPT LANGUAGE="JavaScript">
      
      var name = navigator.appName
      if (name == "Microsoft Internet Explorer") css_url=("css/msie.css");
      else  if (name == "Netscape")               css_url=("css/netscape.css");
      else  if (name == "Opera")                  css_url=("css/opera.css");
      else                                        css_url=("css/other.css")
      document.write('<LINK HREF="http://www.min-sajt.com/martin_wolff/'+(css_url)+'" rel="stylesheet" type="text/css">');
      </SCRIPT>
      <BASE target="_blank">
      </head>
      <BODY>
      <a NAME="top"><BR><BR><BR>
      <perl> 
      $zaehler=0;
      get "Id==*", "sights";
      out "<center><H4>";
      while(get_next("sights"))
      {
      out "| <a href=\"#$Id\" target=_self>$Title $Ort</a> |";
      $Ort=~s/ /\\ /g;
      get "City==$Ort", "location";
      out "$longitud";
      }
      out "</center></H4>";
      

      out "<table border=0 cellpadding=\"0\">";
      while(get_next("sights"))
      {
      $zaehler=$zaehler+1;
         $farbe="#F0FCFF";
         if ($zaehler==2)
         {
            $farbe="white";
            $zaehler=0;
         } 
      $Ort=~s/ /\\ /g;
      out "<TR bgcolor=$farbe><TD valign=top><H3><a href=\"$link\" title=\"Homepage von $Title\">$Title</a><BR>
      ($Ort)</H3><H5><a href=\"http://www.google.com/search?q=$Title+$Ort\" title=\"Suche in Google nach $Title und $Ort\">Suche...</a></H5><BR>
      

      <H5><a name=$Id><a href=#x$Id title=\"zeige $Ort auf Karte...\" onclick=window.open('http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/locate&City~=$Ort','$Id','dependent=yes,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,width=180,height=200,left=150,top=100')
      target=_self>zeige...</a></H5>

      </TD>
      <TD valign=top><a name=$Id><a href=#x$Id onclick=window.open('$bild','$Id','dependent=yes,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,width=300,height=400,left=150,top=100')
      target=_self><img src=\"$bild\" width=90 align=\"right\" border=0 alt=\"bild vergrössern...\"></a>
      $long_description <a href=\"#top\" target=_self><IMG SRC=\"http://www.min-sajt.com/martin_wolff/img/button/up.gif\" BORDER=0 WIDTH=11 HEIGHT=11 ALT=\"zum Seitenanfang\"></a></TD></TR>";
      }
      out "<table>";
      

      </perl>
      </body></html>
      

      ==============================================================

      ... und hier die Seite mit der Karte ( vorerst nur ein einfaches GIF) , in der je nach Koordinaten - umgerechnet in Pixel - per DHTML ein blinkpunkt gesetzt werden soll. Hier wird aber immer nur die Position des 1. Datensatzes ( Kopenhagen) angezeigt (http://baseportal.de/cgi-bin/baseportal.pl?htx=/suedschweden/locate):

      ==============================================================

      <head><title>location</title>
      <SCRIPT LANGUAGE="JavaScript">
      
      var name = navigator.appName
      if (name == "Microsoft Internet Explorer") css_url=("css/msie.css");
      else  if (name == "Netscape")               css_url=("css/netscape.css");
      else  if (name == "Opera")                  css_url=("css/opera.css");
      else                                        css_url=("css/other.css")
      document.write('<LINK HREF="http://www.min-sajt.com/martin_wolff/'+(css_url)+'" rel="stylesheet" type="text/css">');
      </SCRIPT>
      <BASE target="_blank">
      </head>
      <body>
      <perl> 
      get "City~=Kope", "location";
      

      $latipx=79.588*$latitud*$latitud - 8954.9*$latitud + 251916;

      $longpx=1.3754*$longitud*$longitud+16.664*$longitud-401.09;
      

      out "<div id=\"Layer1\" style=\"position:absolute; left:$longpx px; top:$latipx px; width:9px; height:9px; z-index:1\">
       <img src=\"http://www.min-sajt.com/martin_wolff/img/button/up.gif\" width=\"9\" height=\"9\">
      </div>
      
            <img src=\"http://www.min-sajt.com/martin_wolff/img/button/grid.gif\" width=\"120\" height=\"123\"><BR>  <p>$City  <BR>( $longitud ö.L=left:$longpx px, <BR>  $latitud n.B.=top:$latipx px)</p>";
      </perl>
      </body>
      </html>
      

      Gruss Martin

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Freitag, 9.August.2002, 13:36.
    Re: 2 datenbanken verknuepfen - neue Frage

      Hallo, Martin,
      ich glaub, du mußt in dem Template mit der Ausgabe der Karte den jeweils zugehörigen Datensatz holen.
      So wie dein get ist, ist ja nur Kopenhagen als geholter Datensatz festgelegt:
      get "City~=Kope", "location"
      
      mit dem "City~=Kope gibst du ja an daß der Datensatz, in dem das Feld City mit Kope beginnt, geholt wird und auch die entsprechenden Koordinaten.
      Du brauchst bloß das Kope durch eine Variable ersetzen, die du dann beim Aufruf der Seite an die URL mit anhängst, also bspw. <a href=dieseite&suchort=$Ort>, damit wird der Ort an dein Kartentemplate mit übergeben. Dort schreibst du dann rein:
      get "City~=$suchort", "location"
      
      und schon sollte es gehen....
      hoffe es hilft dir
      Ruben

     Antworten

    Beitrag von Martin (124 Beiträge) am Freitag, 9.August.2002, 14:08.
    Re: 2 datenbanken verknuepfen - neue Frage

      Yeahh! Funktioniert! danke!

     Antworten


     
 Liste der Einträge von 44850 bis 45000:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.05s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!