HTML, CSS, PHP, MySQL

html-php.de

HTML & CSS Stylesheets Referenz JavaScript PHP MySQL Sonstiges Gästebuch Inhalt Impressum

[ Datensätze lesen ] [ Anzahl von Datensätze ]

Datensätze lesen

Um den Inhalt einer MySQL-Datenbank-Tabelle zu lesen, benutzen Sie den Befehl SELECT Feldliste FROM Tabelle ORDER BY Feldname Sortierreihenfolde. In der Feldliste stehen die Feldnamen, die ausgelesen werden sollen. Statt dessen kann auch ein * für alle Felder angegeben werden. Die Sortierreihenfolge kann aufwärts mit ASC bestimmt werden, oder abwärts mit DESC.

   <?php
   include 'inc/zugriff.php';
   $sql = "SELECT
                  *
                FROM 
                  Beitrag 
                ORDER BY Zeit DESC";
   $result = mysqli_query($dblink, $sql);
   ?>

Damit haben Sie die Daten aus der Tabelle jetzt ausgelesen. Mit der Funktion mysqli_num_rows($result) können Sie auslesen, wieviele Zeilen gelesen wurden. Um die Daten jetzt auch anzuzeigen, benötigen wir die Funktion mysqli_fetch_array, mit der wir die Datensätze nacheinander auslesen
Den Zeitstempel wandeln wir nun um, in Datum und Uhrzeit. Das Ergebnis lässt sich nun anzeigen.

   <?php
   $anz = mysqli_num_rows($result);
   for($i=0; $i<$anz; $i++){
     $finfo = mysqli_fetch_array($result, MYSQLI_ASSOC);
     $name = $finfo["Name"] ;
     $datum = $finfo["Zeit"] ; 
     $datum = strftime('%d.%m.%Y um %H:%M', $datum);
     $text =  $finfo["Beitrag"] ;
     $comment =  $finfo["Kommentar"] ;
     $email =  $finfo["eMail"] ;
     $homepage =  $finfo["HP"] ;
     echo "<div class=\"uberschr\">\n";
     echo "<p class=\"sender\">$datum\n";
     echo "<a href=\"mailto:$email\">
          <img src=\"img/email.gif\" alt=\"eMail\"></a>\n";
     echo "<a href=\"$homepage\">
          <img src=\"img/homepage.gif\" alt=\"Homepage\"></a>\n";
     echo "</p>\n";
     echo "<p class=\"name\">$name</p>\n";
     echo "</div>\n";
     echo "<p class=\"beitrag\">$text</p>\n";
     echo "<hr>\n";
   } 
   ?>

Nun ändern müssen wir das Script noch ein wenig ändern. Es kann ja sein, das der User keine eMail-Adresse und Homepage angibt. oder die Homepage nur ohne http:// angibt. Das ganze sieht dann wie folgt aus:

  if(trim($email) == "") {
    echo "<img src=\"img/noemail.gif\" alt=\"Keine eMail\">\n" ;
  } else {
    echo "/lt;a href=\"mailto:$email\">
         <img src=\"img/email.gif\" alt=\"eMail\"></a>\n";
  }
  if(trim($homepage) != "") {
    if(strtolower(substr($homepage, 0, 7)) == "http://") {
      echo "<a href=\"$homepage\">
           <img src=\"img/homepage.gif\" alt=\"Homepage\"></a>\n";
    } else {
      echo "<a href=\"http://$homepage\">
           <img src=\"img/homepage.gif\" alt=\"Homepage\"></a>\n";
    }
  } else {
    echo "<img src=\"img/nohomep.gif\" alt=\"Keine Homepage\">\n";
  }

Anzahl von Datensätze

Nun soll ja das Gästebuch wachsen, und Sie möchten nur eine bestimmte Anzahl von Datensätze anzeigen. Dazu benutzen wir das Attribut LIMIT.

   $sql = "SELECT 
             Name, eMail, HP, Zeit, Beitrag, Kommentar
          FROM 
             Beitrag 
          ORDER BY 
             Zeit DESC LIMIT 10";
   $result = mysqli_query($dblink, $sql);
 

back top next