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';
   $dz = @mysql_connect($host,$user,$pass) 
      OR die('Verbindung fehlgeschlagen');
   @mysql_select_db($datei) 
      OR die('Konnte Datenbank nicht benutzen');
   $sql = "SELECT
                  *
                FROM 
                  Beitrag 
                ORDER BY Zeit DESC";
   $result = mysql_query($sql) OR die(mysql_error());
   ?>

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

   <?php
   $anz = mysql_num_rows($result);
   for($i=0; $i<$anz; $i++){
     $name = mysql_result($result, $i, 'Name');
     $datum = mysql_result($result, $i, 'Zeit');
     $datum = strftime('%d.%m.%Y um %H:%M', $datum);
     $text = mysql_result($result, $i, 'Beitrag');
     $comment = mysql_result($result, $i, 'Kommentar');
     $email = mysql_result($result, $i, 'eMail');
     $homepage = mysql_result($result, $i, '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 = mysql_query($sql) OR die(mysql_error());

back top next