Mysql DB -> export -> xml für Rss

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Mysql DB -> export -> xml für Rss

    Sers,
    ich will folgendes, ein script dass meine news datenbank exportiert in xml und diese dann richtig formatiert für ein Rss Feed!

    Bisher bin ich soweit, ich lese alle daten aus und gebe sie in einem XML File wieder : http://www.morschi.com/friends/rss/output.php
    nun will ich dieses angezeigt file automatisch speichern lassen, wie geht das?

    Oder was für andere Möglichkeiten gibt es da?

    Hilfe, hab schon den ganzen Tag nach XML etc gesucht aber nix brauchbares gefunden...
    mein jetziger Plan ist : export -> transform, aber hab keine ahnung wie genau!
    hier mal mein derzeitiges developscrit...
    wegedit
    Zuletzt geändert von Gr3yh0und; 15.10.2005, 11:33.
    Bye
    Grey

  • #2
    1. brich bitte deinen code um!
    2. du hast ja schon den richtigen ansatz mit fwrite() etc. (obwohl ich nicht verstehe, wozu man ein feed abspeichern muss). du kannst die ob_*() funktionen benutzen, um die xml-ausgabe abzufangen. diese speicherst du dann in eine datei.

    Kommentar


    • #3
      Hi!
      DAs mit dem Code hat den einfachen Grund dass ich erst versucht habe selber etwas zu bauen, aber nach realen 3h! keine große Lust mehr hatte und rumgesucht habe nach Tutorials oder Scripts aller Art!

      Heraus kam dann dieses Dokument

      BTW: Danke für den Tipp mit dem ob_()* , die schau ich mir grad mal genauer an!

      Edit:
      Ich habe mich wohl auch nicht klar genug ausgedrückt war vorher ein wenig in Eile!

      Ich habe ein Newsskript, das die Daten ausgibt. Dazu wollte ich Spasseshalber ein RSS Feed erstellen! Jedoch muss ich dazu in eine XML Datei im richtigen Format etwas reinschreiben (channel,rss,items etc). Wenn ich lediglich die Datenbank ausgebe, funktioniert das nicht so einfach, wenn ich ich nicht erst alle Tabellennamen umändern will!
      GIbt es sonst noch eine Möglichkeit für so etwas? die Komfortabler ist?

      danke!
      Zuletzt geändert von Gr3yh0und; 13.10.2005, 21:42.
      Bye
      Grey

      Kommentar


      • #4
        Hallo, da bin ich auch schon wieder
        Ich weiss doppelposts sind lästig aber hier ist mal mein Script soweit:
        PHP-Code:
        <?php
        // Connect to db
        $conn mysql_connect('localhost','web161','XXX') or die("Unable to connect to SQL server");
        mysql_select_db("usr_web161_1") or die("Unable to select database");

        // select news data
        $query "SELECT * FROM news";
        $currentnews mysql_query($query$conn) or die(mysql_error());

        // write into puffer
        ob_start();

        // outputs standard data
        header ("Content-Type: text/xml");
        echo 
        "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
        echo 
        "<?xml-stylesheet href=\"news.xsl\" type=\"text/xsl\"?>\n";
        echo 
        "<rss version=\"1.0\">\n";
        echo 
        "<channel>\n";
        echo 
        "<title>Lapandilla</title>\n";
        echo 
        "<link>XXX</link>\n";
        echo 
        "<description>Lapandilla-Page</description>\n";
        echo 
        "<language>de-de</language>\n";
        echo 
        "<copyright> </copyright>";

        // outputs news
            
        $sql "SELECT * FROM news ORDER BY NewsDatum DESC LIMIT 6";    
            
        $result mysql_query($sql) OR die(mysql_error());    
            if(
        mysql_num_rows($result)) {        
                while(
        $row mysql_fetch_assoc($result)) { 
                    echo 
        "<item>";
                    echo 
        "<title>".$row['NewsTitel']."</title>";
                    echo 
        "<description>".$row['NewsInhalt']."</description>";
                    echo 
        "<link>[url]http://www.morschi.com/
        friends/index2.php?action=news[/url]</link>"
        ;
                    echo 
        "</item>";
                    }
                }

        // close std stuff
        echo "</channel></rss>\n";

        // save output
        $data ob_get_contents();
            
        $fp fopen ("news.xml""w");
            
        fwrite($fp$data);
            
        fclose($fp);
            
        ob_end_clean();
        ?>
        Besser so?

        Gibt es jetzt ne Möglichkeit das jede Stunde aufrufen zu lassen vom Server? Bzw wo baue ich das jetzt am besten ein?
        MFG
        Zuletzt geändert von Gr3yh0und; 13.10.2005, 22:17.
        Bye
        Grey

        Kommentar


        • #5
          Besser so?
          funktioniert's? schön. und jetzt editiere alle deine posts bitte so, dass man nicht horizontal scrollen muss.

          Gibt es jetzt ne Möglichkeit das jede Stunde aufrufen zu lassen vom Server?
          ja - cronjob. aber vielleicht solltest du vorher noch darauf eingehen:
          (obwohl ich nicht verstehe, wozu man ein feed abspeichern muss)
          du kannst ihn doch wunderbar bei jeder anfrage frisch neu generieren lassen.

          Kommentar


          • #6
            HI,
            entschuldige bitte nochmals! Hab ne hohe Auflösung und habe nicht daran gedacht! sry!

            jetzt müsste es jedoch besser sein!

            a) Cronjob? Ich hab in meiner Confixx Oberfläche sogenannte Crontabs, wo man eine Uhrzeit und einen Befehl einstellen kann, was mich aber noch nicht so weiter bringt.

            b) Inwiefern neu generiieren lassen? Kannst du mir da weiterhelfen? einfach in die news.php ein script einbauen dass bei jedem aufruf den RSS Feed neu erstellt? Oder kann man dass in den RSS Feed reinschreiben?

            Hast du vllt eine Idee wie ich das ganze ohne so umständliche Weise wie es jetzt geschieht machen kann? danke
            Bye
            Grey

            Kommentar


            • #7
              a) müsste das richtige sein, informiere dich darüber.

              b) dein script (ohne ob_*() und dateispeichern) gibt den ganzen xml-kram aus, sogar der header wird richtig abgeschickt. wie heißt das script - news.php? versuch mal:
              Code:
              <a href="news.php">lesen Sie meine news im rss-feed!</a>
              und verfüttere diesen link an den feed reader deines vertrauens. wozu also noch das ganze abspeichern?

              Kommentar


              • #8
                Hi,
                wegen den cronjobs schau ich nochmal!

                Ok und hab jetzt auch endlich verstanden was du meinst !
                Danke dir! Scheint jetzt alles zu funzen!

                Ich hätte jedoch noch ein paar andere Knackpunkte die ich dich gerne fragen würde Hilfst du mir dabei auch noch?

                Ich erstelle eine session per Session_start... über die ganze homepage! Mit der Session erkenn ich auch wer sich gerade eingeloggt hat bei den Benutzern etc! ER setzt dabei ein PHPSESSID Cookie, was jedoch keine ABlaufzeit hat. Ich würde da gerne ein Verfallsdatum mitgeben, geht das?
                Bye
                Grey

                Kommentar


                • #9
                  http://de.php.net/manual/en/function...kie-params.php

                  Kommentar


                  • #10
                    Hi
                    ok danke wieder einmal Hab das cookie jetzt mal auf 1 Stunde gesetzt

                    Noch etwas:
                    Ich habe ein php file. Das gibt eine Liste mit daten aus. Jetzt will ich einen eintrag darus löschen, dies habe ich bisher in eine externe *delete.php file ausgelagtert, wo dann nur die ID des eintrags empfangen und dann gelöscht wird.
                    Ich hab bei meim Bruder mit Perl sowas schonmal gebastelt in der Firma, dass wenn man draufklickt ein javascript ein Valuefeld setzt und einen reload macht, dann löscht und die Liste erneut ausgibt!
                    Ich kriegs aber mit PHP ned gebacken
                    Bye
                    Grey

                    Kommentar


                    • #11
                      hint:
                      Code:
                      <a href="selbedatei.php?aktion=loeschen&amp;id=7">lösche #7</a>
                      und in der selben datei:
                      PHP-Code:
                      if ( isset ( $_GET['aktion'] ) && $_GET['aktion'] == 'loeschen' )
                      {
                         
                      // hier wird die routine zum löschen ausgeführt.

                      der link lässt sich nach belieben mit js verfeinern (z.b. mit confirm()).

                      Kommentar


                      • #12
                        Hi
                        so bin wieder da
                        hab auch schon wieder einiges gebastelt und zusammengefasst (news edit delete etc alles in eine file, nicht 6 wie vorher )

                        aber ich will jetzt ein replacement script schreiben. also dass aus Zeichenketten Smilies macht. how to do?

                        Hab in meine Mainfile include zu der file replacement.php reingeschrieben... der befehl ist str_replace, aber wie funktioniert das jetzt genauer? ich definiere eine funktion, aber wie sage ich ihr im parameter dass es die gesamte homepage nehmen soll? $IN ?
                        Bye
                        Grey

                        Kommentar


                        • #13
                          str_replace(), damit kannst aus "" ein smiley machen.

                          Kommentar


                          • #14
                            Ja aber wie
                            wo muss das
                            PHP-Code:
                            str_replace(":-)",'<image....></..>',); 
                            stehen?
                            ich lagere es in eine andere Datei aus und include diese. Wie sag ich jetzt den str_replaces in der externen Datei, dass sie die Homepage durchsuchen und ersetzen sollen?
                            Bye
                            Grey

                            Kommentar


                            • #15
                              beim editieren bzw. speichern soll es ruhig als zeichenkette bleiben.
                              erst bei der ausgabe musst du ein str_replace() einbauen, dass dir die smilies richtig ersetzt.

                              Kommentar

                              Lädt...
                              X