napperman
Goto Top

Richtextdaten in eine andere Tabelle als HTML oder Text

Moin zusammen!

Wir haben hier eine Datenbank auf einem Mysql-Server. Die DB gehört zu unserem ERP
In einer Tabelle gibt es eine Spalte "Bemerkungen". Hierin werden Daten in RTF abgelegt. Format der Spalte ist MIDTEXT
Ich wollte gern mit einer Abfrage in Access Daten in eine andere Tabelle exportieren. Das allein ist nicht das Problem. Aber ich möchte die Daten hinterher in einer Webseite darstellen, da gibt's dann ein Problem mit RTF.
Gibt es einen Weg mittels Access 2003 die Daten in HTML oder nur Text umzubauen?
Ab Access 2007 gibts ja PlainText()
Hab ich aber nicht, soll auch nicht extra angeschafft werden...

Hat jemand ne Idee?

Die Darstellung auf der Webseite ist basierend auf dem Fillialfinder von Googlemaps, also HTML, PHP und Javascript.
Wenn jemand einen Ansatz hat, wäre es klasse.

Die HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  

  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>  
    <title>Subunternehmersuche</title>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=true&amp;key="  
            type="text/javascript"></script>  

    <script type="text/javascript">  
 
   //<![CDATA[
    

    var map;
    var geocoder;

    function load() {
      if (GBrowserIsCompatible()) {
        geocoder = new GClientGeocoder();
        map = new GMap2(document.getElementById('map'));  
        map.addControl(new GSmallMapControl());
_mPreferMetric = true; 
var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(100,10));
map.addControl(new GScaleControl(), pos); 
        map.setCenter(new GLatLng(52, 10), 6);
      }
    }

   function searchLocations() {
     var address = document.getElementById('addressInput').value;  
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert(address + ' not found');  
       } else {
         searchLocationsNear(latlng);
       }
     });
   }

   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;  
     var searchUrl = 'phpsqlsearch_genxml.php?lat=' + center.lat() + '&lng=' + center.lng() + '&radius=' + radius;  
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');  
       map.clearOverlays();
var blueIcon = new GIcon(G_DEFAULT_ICON);
blueIcon.image = "http://pcc-fc.com/greenpin.png";  
montageOptions = { icon:blueIcon, html:"Montageort" };  
var montage = new GLatLng(center.lat(),center.lng());
map.addOverlay(new GMarker(montage, montageOptions));


       var sidebar = document.getElementById('sidebar');  
       sidebar.innerHTML = '';  
       if (markers.length == 0) {
         sidebar.innerHTML = 'Keine Subunternehmer im gew&auml;hlten Umkreis.';  
         map.setCenter(new GLatLng(52, 10), 6);
         return;
       }

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');  
         var address = markers[i].getAttribute('address');  
         var distance = parseFloat(markers[i].getAttribute('distance'));  
	 var info = markers[i].getAttribute('info');  
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),  
                                 parseFloat(markers[i].getAttribute('lng')));  
         
         var marker = createMarker(point, name, address, info);
         map.addOverlay(marker);





         var sidebarEntry = createSidebarEntry(marker, name, address, distance);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));
var zoomOverride = map.getZoom();
        if(zoomOverride > 15) {
        zoomOverride = 10;
        }
      map.setZoom(zoomOverride);

     });
   }

    function createMarker(point, name, address, info) {
      var marker = new GMarker(point);
      var html = '<b>' + name + '</b> <br/>' + address + '<br/>' + '<br/>' + info;  
      GEvent.addListener(marker, 'click', function() {  
        marker.openInfoWindowHtml(html);
      });
      return marker;
    }

    function createSidebarEntry(marker, name, address, distance) {
      var div = document.createElement('div');  
      var html = '<b>' + name + ' (' + distance.toFixed(1) + ')</b><br/>' + address;  
      div.innerHTML = html;
      div.style.cursor = 'pointer';  
      div.style.marginBottom = '5px';   
      GEvent.addDomListener(div, 'click', function() {  
        GEvent.trigger(marker, 'click');  
      });
      GEvent.addDomListener(div, 'mouseover', function() {  
        div.style.backgroundColor = '#eee';  
      });
      GEvent.addDomListener(div, 'mouseout', function() {  
        div.style.backgroundColor = '#fff';  
      });
      return div;
    }
    //]]>

  </script>
  </head>

  <body onload="load()" onunload="GUnload()">  
  Montageort: <input type="text" id="addressInput"/>  
     

    Radius: <select id="radiusSelect">  

      <option value="25" selected>25</option>  
      <option value="50">50</option>  
      <option value="100">100</option>  
      <option value="150">150</option>  
      <option value="200">200</option>  
	<option value="2000">alle</option>  


    </select>

    <input type="button" onclick="searchLocations()" value="Suche Subunternehmer"/>  
       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Der Montageort ist mit <img src="http://pcc-fc.com/greenpin.png"> markiert.  
        <br/>
<div style="width:1200px; font-family:Arial,   
sans-serif; font-size:11px; border:1px solid black">  
  <table> 
    <tbody> 
      <tr id="cm_mapTR">  

        <td width="300" valign="top"> <div id="sidebar" style="overflow: auto; height: 800px; font-size: 11px; color: #000"></div>  

        </td>
        <td> <div id="map" style="overflow: hidden; width:900px; height:800px"></div> </td>  

      </tr> 
    </tbody>
  </table>
</div>    
  </body>
</html>


Und hier die PHP Datei, die die Daten aus der DB holt und aufbereitet
info ist das RTF-Feld


 
<?php  


// Get parameters from URL
$center_lat = $_GET["lat"];  
$center_lng = $_GET["lng"];  
$radius = $_GET["radius"];  

// Start XML file, create parent node
$dom = new DOMDocument("1.0");  
$node = $dom->createElement("markers");  
$parnode = $dom->appendChild($node);

// Opens a connection to a mySQL server
$connection=mysql_connect ('dbserver', 'User', 'Passwort');  
if (!$connection) {
  die("Not connected : " . mysql_error());  
}

// Set the active mySQL database
$db_selected = mysql_select_db('datenbankname', $connection);  
if (!$db_selected) {
  die ("Can\'t use db : " . mysql_error());  
}

// Search the rows in the markers table
$query = sprintf("SELECT address,info, name, lat, lng, ( 6371 * acos( cos( radians('%s') ) * cos( radians( lat ) ) * cos( radians( lng ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < '%s' ORDER BY distance",  mysql_real_escape_string($center_lat),  
  mysql_real_escape_string($center_lng),
  mysql_real_escape_string($center_lat),
  mysql_real_escape_string($radius));
$result = mysql_query($query);

$result = mysql_query($query);
if (!$result) {
  die("Invalid query: " . mysql_error());  
}


header("Content-type: text/xml; charset=utf-8");  
// Iterate through the rows, adding XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
  $node = $dom->createElement("marker", utf8_encode);  
  $newnode = $parnode->appendChild($node);
  $newnode->setAttribute("name", utf8_encode($row['name']));  
  $newnode->setAttribute("address", utf8_encode($row['address']));  
  $newnode->setAttribute("lat", utf8_encode($row['lat']));  
  $newnode->setAttribute("lng", utf8_encode($row['lng']));  
  $newnode->setAttribute("distance", utf8_encode($row['distance']));  
$newnode->setAttribute("info", utf8_encode($row['info']));  
}

echo $dom->saveXML();
?>

Content-ID: 180830

Url: https://administrator.de/contentid/180830

Ausgedruckt am: 20.11.2024 um 17:11 Uhr

NetWolf
NetWolf 21.02.2012 um 19:33:37 Uhr
Goto Top
Moin Moin,

Gibt es einen Weg mittels Access 2003 die Daten in HTML oder nur Text umzubauen?
ist schon lange her, das mit A2003, aber soweit ich mich erinnere kannst du den RTF Text einfach in ein Memofeld einfügen, dann hast du plain Text.

Ab Access 2007 gibts ja PlainText() Hab ich aber nicht, soll auch nicht extra angeschafft werden...
nun ja, ich denke über kurz oder lang werdet Ihr da nicht drumherum kommen.

Grüße aus Rostock
Wolfgang
(Netwolf)