skipper6340: mysql_fetch_array

Hallo zusammen, wieder mal ich!

Ich mache mit PHP auf mySQL ein Datenbankabfrage:

$sql = "SELECT * FROM genesis_tracking_template where template_id = (SELECT max( template_id ) FROM `genesis_tracking_template`)";  
$db_erg = mysql_query( $sql );  

und der Inhalt der/des Attributes ist ein XML Teil:

INSERT INTO genesis_tracking_template VALUES (NULL,  
'<?xml version="1.0" encoding="UTF-8"?>  
 <kml xmlns="http://www.opengis.net/kml/2.2">  
  <Document>  
    <name>MSY Genesis</name>  
    <Style id="point">  
      <IconStyle>  
        <Icon>  
          <href>http://labs.google.com/ridefinder/images/mm_20_blue.png</href>  
        </Icon>  
      </IconStyle>  
    </Style>  
    <Style id="style">  
      <LineStyle>  
         .....  
         .....  
         .....  
         .....  

aber der Query gibt mir nur einen kleinen Teil vom Anfnag zurück:

"MSY Genesis %placemarks% MSY Genesis #style 1 absolute %placemark_coordinates%"

Was muss ich anpassen damit der komplette XML String gelesen wird?

Im XML Template gibt es Platzhalter wie z.B. %placemark_name% die dann durch die gewünschten Werte ersetzt werden. Evtl. machen die Platzhalter das Problem.

Ziel soll es sein ein XML File auf dem Server abzulegen das dann abgerufen werden kann.

Danke und Ciao skipper6340

  1. Hallo zusammen, wieder mal ich!

    Ich mache mit PHP auf mySQL ein Datenbankabfrage:

    $sql = "SELECT * FROM genesis_tracking_template where template_id = (SELECT max( template_id ) FROM genesis_tracking_template)";

    $db_erg = mysql_query( $sql );

    
    >   
    > und der Inhalt der/des Attributes ist ein XML Teil:  
    >   
    > ~~~xml
    
    INSERT INTO genesis_tracking_template VALUES (NULL,  
    
    > '<?xml version="1.0" encoding="UTF-8"?>  
    >  <kml xmlns="http://www.opengis.net/kml/2.2">  
    >   <Document>  
    >     <name>MSY Genesis</name>  
    >     <Style id="point">  
    >       <IconStyle>  
    >         <Icon>  
    >           <href>http://labs.google.com/ridefinder/images/mm_20_blue.png</href>  
    >         </Icon>  
    >       </IconStyle>  
    >     </Style>  
    >     <Style id="style">  
    >       <LineStyle>  
    >          .....  
    >          .....  
    >          .....  
    >          .....  
    > 
    
    

    aber der Query gibt mir nur einen kleinen Teil vom Anfnag zurück:

    "MSY Genesis %placemarks% MSY Genesis #style 1 absolute %placemark_coordinates%"

    Was muss ich anpassen damit der komplette XML String gelesen wird?

    Im XML Template gibt es Platzhalter wie z.B. %placemark_name% die dann durch die gewünschten Werte ersetzt werden. Evtl. machen die Platzhalter das Problem.

    Ziel soll es sein ein XML File auf dem Server abzulegen das dann abgerufen werden kann.

    Danke und Ciao skipper6340

    Die grundlegende Frage IST, warum bringt der Query nicht genau das zurück was in der Datenbank ist!

    Wollte ich nochmal genauer spezifizieren!

    Ciao skipper6340

    1. Hello,

      Die grundlegende Frage IST, warum bringt der Query nicht genau das zurück was in der Datenbank ist!

      Woher weißt Du denn, was wirklich in der Datenbank steht?
      Einen Fehler hast Du schon beim Eintragen gemacht:
      Du benutzt die Testschnitttstelle zum eintragen, hast aber das Escaping des Wertes vergessen.

      mysql_real_escape_string() (in deinem Fall) oder besser mysqli_real_escape_string(), wenn Du die MySQL-I-Funktionen benutzt, sollte da eigentlich schon helfen.

      Und dann sollte beim Datenholen auch das wieder rauskommen, was Du _glaubst_, weggeschrieben zu haben.

      siehe auch http://wiki.selfhtml.org/wiki/Artikel:Kontextwechsel

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Hello,

        Du benutzt die Testschnitttstelle zum eintragen, hast aber das Escaping des Wertes vergessen.

        Das sollte Textschnittstelle heißen.
                     ^

        Nur zur Klarstellung ;-P

        Liebe Grüße aus dem schönen Oberharz

        Tom vom Berg

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bergpost.annerschbarrich.de
        1. Hello,

          Du benutzt die Testschnitttstelle zum eintragen, hast aber das Escaping des Wertes vergessen.

          Das sollte Textschnittstelle heißen.
                       ^

          Nur zur Klarstellung ;-P

          Liebe Grüße aus dem schönen Oberharz

          Tom vom Berg

          Tol, Danke; ... aber was soll ich jetzt machen?

          1. Tol, Danke; ... aber was soll ich jetzt machen?

            hatte ich Dir schon geschreiben:

            1. feststellen, ob der gewünschte Text wirklich in der Datenbank steht,
               zumindest von der Zeichnzahl oder Bytelänge (Multibytecodierungen beachten!)

            2. Beim Wegschreiben der Daten das richtige Escaping beachten
               http://de2.php.net/manual/en/function.mysql-real-escape-string.php

            3. Bei der Wiedergabe der Daten (per Browser) die passende Kontextbehandlung
               beachten, je nachdem, was Du sehen willst (HTML interpretiert, HTML als Text angezeigt)

            Liebe Grüße aus dem schönen Oberharz

            Tom vom Berg

            --
             ☻_
            /▌
            / \ Nur selber lernen macht schlau
            http://bergpost.annerschbarrich.de
            1. Danke erstmal werde das alles prüfen und mich wieder melden. Ciao skipper6340

  2. Hi!

    Ich mache mit PHP auf mySQL ein Datenbankabfrage:
    und der Inhalt der/des Attributes ist ein XML Teil:
    aber der Query gibt mir nur einen kleinen Teil vom Anfnag zurück:
    "MSY Genesis %placemarks% MSY Genesis #style 1 absolute %placemark_coordinates%"

    Ist das eine Kontrollausgabe über den Browser? Dann ist der Rest vermutlich weginterpretiert. Siehe Quelltextansicht des Browsers.

    Was muss ich anpassen damit der komplette XML String gelesen wird?

    Wie genau hast du überprüft, dass du nur einen Teil bekommst? Hast du dir Stringlängen vom Wert im DBMS und den nach der Abfrage ermitteln lassen?

    Im XML Template gibt es Platzhalter wie z.B. %placemark_name% die dann durch die gewünschten Werte ersetzt werden. Evtl. machen die Platzhalter das Problem.

    Wenn du den Kontextwechsel beachtest, bekommst du mit keinen Zeichen irgendwelche Probleme.

    Lo!