Mehrere Zeilen einer MySQL Tabelle ausgeben...

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

  • Mehrere Zeilen einer MySQL Tabelle ausgeben...

    Hiho,

    ich hab mal wieder ein Problem beim Auslesen einer MySQL Tabelle.
    Und zwar bekomme ich es nicht hin das er mir mehr als nur die erste Zeile der Tabelle ausliesst. Es handelt sich um ein News Script was die 10 letzten Einträge anzeigen sollen.

    Hier mal mein PHP Script:

    PHP-Code:
    <?php

    error_reporting
    (E_ALL);
    include 
    '_css.php';
    include 
    '_mysql.php';

    // Verbindung mit mysql Server aufnehmen

    @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR
            die(
    "Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
        
    mysql_select_db(MYSQL_DATABASE) OR
            die(
    "Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

    // Daten werden ausgelesen
                   
    $sql "SELECT
                 id,
                   titel,
                    inhalt,
                datum,
                author,
                   rubrik,
                   kommentare,
                links
            FROM
                 news
            ORDER BY
                id DESC
                LIMIT 10"
    ;
        
    $result mysql_query($sql) OR die(mysql_error());
        
    while(
    $row mysql_fetch_assoc($result)) {

    // Daten werden in Variablen Gespeichert
              
            
    $ID $row['id'];
            
    $TITEL $row['titel'];
            
    $INHALT $row['inhalt'];
            
    $DATUM $row['datum'];
            
    $AUTHOR $row['author'];
            
    $RUBRIK $row['rubrik'];
            
    $KOMMENTARE $row['kommentare'];
            
    $LINKS $row['links'];
        }

    // Template Ausgabe
        
    require_once "../vlib/vlibTemplate.php";

        
    $tmpl = new vlibTemplate('templates/news_view.html');
                
        
    $tmpl->setVar('titel'$TITEL); 
        
    $tmpl->setVar('inhalt'$INHALT); 
        
    $tmpl->setVar('datum'$DATUM);
        
    $tmpl->setVar('author'$AUTHOR);
        
    $tmpl->setVar('rubrik'$RUBRIK);
        
    $tmpl->setVar('kommentare'$KOMMENTARE);
        
    $tmpl->setVar('links'$LINKS);
         
        
    $tmpl->pparse();
            
    ?>
    Klar so wird nur die erste ID aus der Tabelle ausgegeben aber ich hab ich keinen ansatz wie ich es richtig hinbekomme...

    Hier nochmal das Template:

    <table width="430" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td colspan="3" class="titel">{tmpl_var name='titel'}</td>
    </tr>
    <tr>
    <td width="60" background="images/datum_etc.jpg" class="datum_inhalt">Datum:</td>
    <td width="135" background="images/news_fensterOben.jpg" class="datum2">{tmpl_var name='datum'}</td>
    <td width="235" rowspan="3" align="left" valign="top" background="images/news_teamhonkz.jpg"></td>
    </tr>
    <tr>
    <td background="images/datum_etc.jpg" class="datum_inhalt">Author:</td>
    <td background="images/news_fensterMitte.jpg" class="datum2">{tmpl_var name='author'}</td>
    </tr>
    <tr>
    <td background="images/datum_etc.jpg" class="datum_inhalt">Link:</td>
    <td background="images/news_fensterUnten.jpg" class="datum2">{tmpl_var name='links'}</td>
    </tr>
    <tr>
    <td colspan="3" class="news_mitte"></td>
    </tr>
    <tr align="left" valign="top">
    <td height="150" colspan="3" class="inhalt">{tmpl_var name='inhalt'}</td>
    </tr>
    <tr background="images/news_kommentar.jpg">
    <td colspan="3" class="datum">Kommentar: ({tmpl_var name='kommentare'}) </td>
    </tr>
    <tr>
    <td colspan="3" class="titel"></td>
    </tr>
    </table>

    Ich hoffe ihr könnt mir helfen.

    mfg
    Marco

  • #2
    aus deiner tabelle werden alle zeilen ausgelesen, allerdings hast du nach beenden der while-schleife auch nur einen wert in den variablen, und zwar den letzten. die varablen werden doch bei jedem durchlauf neu belegt.

    Kommentar


    • #3
      1. du schließt die Schleife zu früh ab, bzw. du mußt die Ausgabe in die Schleife rein bringen.
      2. oder du speicherst die Werte in Arrays und übergibst sie dem Template
      3. in beiden Fällen muß dein Template mit den Daten umgehen können, oder du mußt das Template mehrmals inkludieren, was ich für Unfug halte.

      Kommentar


      • #4
        statt
        PHP-Code:
        while($row mysql_fetch_assoc($result)) {

        // Daten werden in Variablen Gespeichert
                  
                
        $ID $row['id'];
                
        $TITEL $row['titel'];
                
        $INHALT $row['inhalt'];
                
        $DATUM $row['datum'];
                
        $AUTHOR $row['author'];
                
        $RUBRIK $row['rubrik'];
                
        $KOMMENTARE $row['kommentare'];
                
        $LINKS $row['links'];
            } 
        eher
        PHP-Code:
        [...]
        $daten[] = $row['id'];
        $daten[] = $row['titel'];
        $daten[] = $row['inhalt'];
        $daten[] = $row['datum'];
        $daten[] = $row['author'];
        $daten[] = $row['rubrik'];
        $daten[] = $row['kommentare'];
        $daten[] = $row['links']; 
        So kommst du, wie auch von asp2php geschrieben, auch nach Verlassen der Schleife noch an alle Daten. Bei deiner Methode ist natürlich nur der letzte Datensatz vorhanden, da du die Vars bei jedem Schleifendurchlauf wieder neu schreibst.
        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Danke für die schnellen Antworten, bin heute erst wieder Online gekommen.

          Habe jetzt allerdings eine andere möglichkeit gefunden die Daten an das Template zu übergeben die um einiges schlanker ist als die Alte.

          Hier mal der Code:

          PHP-Code:
          <?php

          //  Alle Fehler Anzeigen

              
          error_reporting(E_ALL);

          //  Includieren der einzelnen Programm Elemente

              
          include '_css.php';
              include 
          '_mysql.php';
              require_once 
          "../vlib/vlibTemplate.php";

          //  Template System wird eingebunden

              
          $tmpl = new vlibTemplate('templates/news_view.html');

          //  Verbindung mit mysql Server aufnehmen

              
          @mysql_connect(MYSQL_HOSTMYSQL_USERMYSQL_PASS) OR
                  die(
          "Keine Verbindung zur Datenbank. Fehlermeldung:".mysql_error());
              
          mysql_select_db(MYSQL_DATABASE) OR
                  die(
          "Konnte Datenbank nicht benutzen, Fehlermeldung: ".mysql_error());

          //  Daten werden ausgelesen
                         
              
          $sql "SELECT
                           id,
                             titel,
                              inhalt,
                          datum,
                          author,
                             rubrik,
                             kommentare,
                              links
                      FROM
                               news
                      ORDER BY
                          datum DESC
                              LIMIT 10"
          ;
                  
              
          $result mysql_query($sql) OR die(mysql_error());



              
          $tmpl->setdbloop('table_data'$result);



                  
          $tmpl->pparse();
              
          ?>
          Hier nochmal der HTML Code:

          <table width="430" border="0" cellspacing="0" cellpadding="0">

          <!-- rows / DB-data -->

          <tmpl_loop name='table_data'> <!-- row start -->

          <tr>
          <td colspan="3" class="titel">{tmpl_var name='titel'}</td>
          </tr>
          <tr>
          <td width="60" background="images/datum_etc.jpg" class="datum_inhalt">Datum:</td>
          <td width="135" background="images/news_fensterOben.jpg" class="datum2">{tmpl_var name='datum'}</td>
          <td width="235" rowspan="3" align="left" valign="top" background="images/news_teamhonkz.jpg"></td>
          </tr>
          <tr>
          <td background="images/datum_etc.jpg" class="datum_inhalt">Author:</td>
          <td background="images/news_fensterMitte.jpg" class="datum2">{tmpl_var name='author'}</td>
          </tr>
          <tr>
          <td background="images/datum_etc.jpg" class="datum_inhalt">Link:</td>
          <td background="images/news_fensterUnten.jpg" class="datum2">{tmpl_var name='links'}</td>
          </tr>
          <tr>
          <td colspan="3" class="news_mitte"></td>
          </tr>
          <tr align="left" valign="top">
          <td height="150" colspan="3" class="inhalt">{tmpl_var name='inhalt'}</td>
          </tr>
          <tr background="images/news_kommentar.jpg">
          <td colspan="3" class="datum">Kommentar: ({tmpl_var name='kommentare'}) </td>
          </tr>

          <!-- row end -->
          </tmpl_loop>

          </table>

          _____________________________________________________

          Naja wenns nur immer so einfach sein könnte.

          Trotzdem danke für euer Bemühen

          mfg
          Marco

          Kommentar

          Lädt...
          X