Variablen nach Schleife zusammenfügen

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

  • Variablen nach Schleife zusammenfügen

    Guten Abend,
    habe schon wieder ein Problem, vielleicht weiss ja jemand rat. Ich bau gerade ein Newsscript zusammen und normalerweise hol ich mir alles aus der Datenbank und gebe es noch in der while Schleife mit Echo aus. Mit Templates klappt das leider nicht so wie ich es mir vorgestellt habe

    hier mein Denkansatz:

    PHP-Code:
        $i "0";
        
    $result mysql_query("SELECT * FROM news"); 
        while(
    $row mysql_fetch_row($result))
        { 
            
    $datum $row[0];
            
    $user =  $row[1];
            
    $ueberschrift =  $row[2];
            
    $news =  $row[3];
                
            
    $i++;
                    
            
    $auslesen[$i] = "
            <table border=\"0\" cellpagging=\"0\" cellspacing=\"0\">
                <tr>
                    <td height=\"60\" align=\"left\"><img src=\"../bilder/news.jpg\"></td>
                    <td><font size=\"3\"><b>
    $ueberschrift</b></font><br><font size=\"-2\"><i>geschrieben von $user am $datum</i></font></td>
                </tr>
                <tr>
                    <td colspan=\"2\">
    $news</td>
                </tr>
            </table>"
    ;
        }

    $neuig_ausgabe "$auslesen[$i]"
    Wenn ich natürlich die Tabelle mit Echo in der Schleife ausgebe bekomme ich beide Einträge aus der Datenbank. Nun war meine idee i++ zu nutzen und $auslesen[$i] durchzunummerieren aber das klappt irgendwie nicht wirklich.

    $neuig_ausgabe gebe ich im übrigen in meinem Template aus, ich müsste also $neuig_ausgabe =$eintrag1 $eintrag2; irgendwie so zusammen bekommen.

  • #2
    Weil $i nach der while-Schleife den zuletzt in der Schleife gesetzten Wert hat und du deswegen mit
    PHP-Code:
    $neuig_ausgabe $auslesen[$i]; 
    (übrigens ohne ") nur das letzte News-Tupel übergibst.

    So sollte es gehen:
    PHP-Code:
    $neuig_ausgabe implode(' '$auslesen); 
    Alternativ kannst du dir den Array gleich sparen und in der Schleife einen langen String konstruieren:
    PHP-Code:
    while($row mysql_fetch_row($result)) { 
      
    $neuig_ausgabe .= $txt1.$row[2].$txt2.$row[1].$txt3.$row[0].$txt4.$row[3].$txt5.' ';

    Kommentar


    • #3
      es funktioniert, ehrlich gesagt steig ich da nicht so hinter was du da genau machst.

      PHP-Code:
      $neuig_ausgabe .= $txt1.$row[2].$txt2.$row[1].$txt3.$row[0].$txt4.$row[3].$txt5.' '
      Wäre super wenn du mir das hier erklären würdest, row[2] etc ist klar sind die einräge aus der Datenbank aber $txt1 bringt mich nicht weiter.

      Kommentar


      • #4
        Ich wollte den Code nur kurz halten.
        $txt2 wäre zum Beispiel '</b></font><br><font size="-2"><i>geschrieben von '. Die $txt's kannst du entweder einmal vor der Schleife anlegen oder du schreibst den HTML-Code in der Schleife eben aus, wie du es ursprünglich gemacht hast.

        Kommentar


        • #5
          $neuig_ausgabe .= $txt1;

          ist das selbe wie:

          $neuig_ausgabe = $neuig_ausgabe . $txt1;

          Man beachte den Punkt vor dem =

          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
          sondern mit den Augen das Manual zu lesen.

          Kommentar


          • #6
            Original geschrieben von xManUx
            $neuig_ausgabe .= $txt1;

            ist das selbe wie:

            $neuig_ausgabe = $neuig_ausgabe . $txt1;

            Man beachte den Punkt vor dem =
            was imho nicht die Frage war

            Kommentar


            • #7
              jetzt sollte jeder Fall abgedeckt sein

              Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
              sondern mit den Augen das Manual zu lesen.

              Kommentar

              Lädt...
              X