Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] inhalt einer while schleife in eine variable speichern

Einklappen

Neue Werbung 2019

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

  • [Erledigt] inhalt einer while schleife in eine variable speichern

    hallo,

    ich habe eine frage:

    ich habe eine html datei mit dem namen start_topnews.html die auf dem server liegt und die mit daten gefüllt werden soll weil sie an anderer stelle auf der seite includiert und ausgegeben wird.

    der inhalt dieser html seite soll wie folgt aussehen:
    Code:
    <div>
    <p>02.01.2010</p>
    <div><a href="link-zur-news02.php"> <b>Newsüberschrift 02</b> &raquo;</a><br />
    </div>
    </div>
    
    <div>
    <p>01.01.2010</p>
    <div><a href="link-zur-news01.php"> <b>Newsüberschrift 01</b> &raquo;</a><br />
    </div>
    </div>
    
    ...usw
    diese datei wird dann mit folgenden befehlen beschrieben:
    PHP-Code:
    $datei_handle=fopen("start_topnews.html",w);
    fwrite($datei_handle,$input);
    fclose($datei_handle); 
    so...nun muss ich mir die informationen aus meiner DB zusammensuchen und in meine start_topnews.html bekommen. dazu muss ich die variable $input befüllen. meine idee wäre es die schleife in eine variable zu packen, aber da weiss ich nicht wie es gehen soll.


    PHP-Code:
    $abfrage "SELECT * FROM newsarchiv ORDER BY news_date DESC LIMIT 3";
    $ergebnis mysql_query($abfrage);

    while(
    $row mysql_fetch_assoc($ergebnis))
    {
    ...???...

    kann mir dazu jemand ein paar tipps geben?


  • #2
    Im ersten Schritt machst du dir ein Template für deine News.

    Zum Beispiel wie folgt:
    Code:
    <div class="news-item">
    	<div class="news-item-date">###DATE###</div>
    	<div class="news-item-content">
    		<h2>###NEWS_HEADLINE###</h2>
    		<div class="news-item-text">
    			###NEWS_TEXT###
    		</div>
    	</div>
    </div>
    Anschließend kannst du dir im weiteren Programmablauf die Datei auslesen und den Inhalt immer und immer wieder verwenden. Zum Beispiel so:

    PHP-Code:
    //DB Abfrage

    $tpl file_get_contents('news.tpl');

    $news '<div class="news-list">';

    while ( 
    $row mysql_fetch_assoc($ergebnis) ) {
        
    $news .= str_replace(
                            array(
                                
    '###DATE###',
                                
    '###NEWS_HEADLINE###',
                                
    '###NEWS_TEXT###'),
                            array(
                                
    $row['datum'],
                                
    $row['headline'],
                                
    $row['text']),
                            
    $tpl
                            
    );
    }

    $news.= '</div>';

    $datei_handle=fopen("start_topnews.html",w);
    fwrite($datei_handle$news);
    fclose($datei_handle); 
    (Code ist ungetestet, müsste aber so oder ähnlich funktionieren)
    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

    Kommentar


    • #3
      Hey,
      als erstes:
      Zitat von ePole Beitrag anzeigen
      includiert
      bitte keine "Eindeutschung" englischer Ausdrücke!!

      Zu deinem Vorhaben....versteh ich nicht!
      Wieso willst du deine News in eine html Datei schreiben und diese dann irgendwo einfügen???
      Wieso fügst du nicht statt der html Datei die Datenbankabfrage an dieser Stelle ein???
      So sparst du dir die html Datei??

      Kommentar


      • #4
        Zitat von mistermint Beitrag anzeigen
        bitte keine "Eindeutschung" englischer Ausdrücke!!
        Mehrfache Ausrufezeichen hinter einem Satz machen eine Aussage nicht ausrufender, sondern ausufernder.
        Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
        Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

        Kommentar


        • #5
          Zitat von dennis81 Beitrag anzeigen
          danke dir für deine ausführung, werde es so versuchen...kling logisch bei probs melde ich mich zurück

          Kommentar


          • #6
            Zitat von dennis81 Beitrag anzeigen
            ...

            (Code ist ungetestet, müsste aber so oder ähnlich funktionieren)

            hej dennis81
            oh man, mein hoster unterbindet das error reporting (error_reporting(E_ALL) und irgendwas hackt an dem code und ich seh nur ne leere seite...kann ich das error reporting trotzdem irgendwie einschalten?

            Kommentar


            • #7
              mein hoster unterbindet das error reporting
              Das wage ich zu bezweifeln. display_errors
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar


              • #8
                Hm... kannste nicht erstmal lokal entwickeln / testen? Kann auf die Schnelle keinen Syntax-Fehler erkennen. Bin aber gleich auch erstmal weg...
                Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
                Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

                Kommentar


                • #9
                  Zitat von ePole Beitrag anzeigen
                  oh man, mein hoster unterbindet das error reporting (error_reporting(E_ALL)
                  Woraus schließt du das?

                  Vielleicht ist nur display_errors abgeschaltet, so dass du keine Fehlermeldungen angezeigt bekommst.

                  Kommentar


                  • #10
                    Zitat von ChrisB Beitrag anzeigen
                    Woraus schließt du das?

                    Vielleicht ist nur display_errors abgeschaltet, so dass du keine Fehlermeldungen angezeigt bekommst.
                    naja, das macht die sache ja nicht gerade einfacher, denn einschalten kann ich es ja auch nicht, oder?

                    Kommentar


                    • #11
                      Zitat von dennis81 Beitrag anzeigen
                      Hm... kannste nicht erstmal lokal entwickeln / testen? Kann auf die Schnelle keinen Syntax-Fehler erkennen. Bin aber gleich auch erstmal weg...
                      danke schonmal...ich werde es mal lokal testen. auf jeden fall super lieben dank für deine hilfe trotzdem wäre es toll wenn es auch online gehen würde

                      Kommentar


                      • #12
                        Zitat von ePole Beitrag anzeigen
                        naja, das macht die sache ja nicht gerade einfacher, denn einschalten kann ich es ja auch nicht, oder?
                        Doch, höchstvermutlich schon.

                        Wie - lies bitte im Handbuch nach.

                        Kommentar


                        • #13
                          habe es nun lokal getestet und bekomme eine fehlermeldunge:

                          Warning: str_replace() expects at least 3 parameters, 1 given in C:\xampp\htdocs\test\news_admin\index.php on line 30

                          PHP-Code:
                          while ( $row mysql_fetch_assoc($ergebnis_news) ) 
                                  {
                                      
                          $news .= str_replace(
                                                          array(
                                                              
                          '###ID###',
                                                              
                          '###DATE###',
                                                              
                          '###NEWS_HEADLINE###',
                                                          array(
                                                              
                          $row['id'],
                                                              
                          $row['news_date'],
                                                              
                          $row['news_headline_de'],
                                                          
                          $tpl
                                                          
                          )
                                                          )
                                                          );                          
                          #dies ist die zeile 30
                                  


                          kann damit jemand etwas anfangen?

                          Kommentar


                          • #14
                            Zitat von ePole Beitrag anzeigen
                            kann damit jemand etwas anfangen?
                            Wieso kannst du nichts damit anfangen ...?

                            Warning: str_replace() expects at least 3 parameters, 1 given
                            Übersetzung per Google Translate:
                            Warnung: str_replace () erwartet mindestens 3 Parameter, 1 gegeben
                            Notice: Use of undefined constant w - assumed 'w'
                            Damit kommt GT schlechter klar, aber auch das ist eigentlich nicht unverständlich, wenn man wenigstens Grundkenntnisse in Englisch hat (und wenn nicht, sollte man nicht Programmieren).

                            Du hast nirgendwo eine Konstante mit dem Namen w deklariert, deshalb nimmt PHP mal an, dass du stattdessen wohl 'w' gemeint haben wirst.
                            Und wenn du zu fopen, darauf bezogen bekommst du ja den Fehler gemeldet, mal ins Manual geschaut hättest - dann hättest du sowohl in der Erklärung der Parameter als auch in den Beispielen sehen können, dass der zweite Parameter ein String sein muss.


                            Also, zeig bitte in Zukunft etwas mehr Eigeninitiative.

                            Kommentar


                            • #15
                              schon gefunden hier die antwort (die verschachtelung war etwas falsch):

                              PHP-Code:
                              while ( $row mysql_fetch_assoc($ergebnis_news) ) 
                                      {
                                          
                              $news .= str_replace(
                                                              array(
                                                                  
                              '###ID###',
                                                                  
                              '###DATE###',
                                                                  
                              '###NEWS_HEADLINE###',
                                                                  ),
                                                              array(
                                                                  
                              $row['id'],
                                                                  
                              $row['news_date'],
                                                                  
                              $row['news_headline_de'],
                                                                  ),
                                                              
                              $tpl
                                                              
                              );
                                      } 

                              Kommentar

                              Lädt...
                              X