IT-Academy Logo
Sign Up Login Help
Home - Programmieren - PHP - Einfaches News-System mit PHP und MySQL



Einfaches News-System mit PHP und MySQL

Ein Beispiel wie Sie ein einfachs News-System mit PHP und MySQL realiseren können.


Autor: Patrick Faes (dreamer)
Datum: 02-01-2004, 22:44:31
Referenzen: keine
Schwierigkeit: Fortgeschrittene
Ansichten: 11350x
Rating: 9.5 (4x bewertet)

Hinweis:

Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich.
Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren.

[Druckansicht] [Als E-Mail senden] [Kommentar verfassen]



Einleitung

Dieses Tutorial soll nicht mehr einleiten wie man Daten aus einer MySQL-Datenbank selektiert, sie soll einfach nur zeigen wie man es macht, dass nur eine bestimmte Anzahl von Records gezeigt wird (ich benutze jetzt News, es könnte aber auch eine Linkliste sein). Es werden auch die Aktuellsten als erstes gezeigt.
Ich zeige den vollständigen Code und werde mit Kommentaren dazwischen den Code erklären:


<?php 
CREATE TABLE `news` ( `titel` VARCHAR( 255 ) NOT NULL, `text` VARCHAR( 255 ) NOT NULL ); ?>
Zuerst legen wir eine Tabelle an. Diese beinhaltet nicht mehr als für jeden News-Eintrag einen Titel und einen Text.


<?php
$pro_seite = 10;
if (!isset($anzahl)) $anzahl = 0;
$anzahl_test = $anzahl + $pro_seite;
$anzahl_minus = $anzahl - $pro_seite;
$anzahl_plus = $anzahl + $pro_seite;

Die erste Variable $pro_seite bestimmt wieviele News pro Seite gezeigt werden sollen. In diesem Beispiel sind das 10. Danach wird nachgegangen wieviele News schon gezeigt wurden. Dies ist die Variable $anzahl. Wenn noch keine News gezeigt wurden, hat diese Variable noch keinen Wert und bekommt deshalb den Wert 0. Danach kommt die Variable $anzahl_test, die testen soll ob es noch mehr News gibt, aber darauf komme ich später noch zurück. Dann gibt es noch die Variablen $anzahl_minus und $anzahl_plus, womit man per Link die vorherige bzw. die nächste 10 zeigen kann. Aber darauf komme ich am Ende nochmal zurück.


$db=mysql_connect('server','id','passwort') or die('Eigene Fehlermeldung');
$q=mysql_select_db('datenbank',$db) or die('Eigene Fehlermeldung');
$result = mysql_query('select titel,text from news order by id desc limit '.$pro_seite','
.$anzahl)
or die('Eigene Fehlermeldung');
$n = mysql_num_rows($result);
mysql_close($db);

In diesem Teil wird die Datenbank selektiert und danach kommt der Query. Der Query funktioniert so:
  • selektiere den Titel und den Text aus der Tabelle news und
  • ordne diese bei der ID in umgekehrter Reihenfolge (so werden die neuste Einträge immer zuerst gezeigt).
  • limitiere diese: limit "Anzahl der an zu zeigende News","Anzahl der News-Einträge die schon gezeigt wurden"
Anmerkung:

Sie brauchen zu limit nicht mehr zu wissen, wenn Sie aber doch Interesse daran haben, dann klicken Sie hier.

Als letztes wird gezählt wieviele Records gefunden wurden. Dies brauchen wir später um nach zu gehen ob es noch mehr Records gibt.


while (list($titel,$text)=mysql_fetch_row($result))
{echo'<table><tr><td style="background-color:yellow;text-align:center;>'.$titel.'</td>
<td style="border:1px solid blue;">'.$text.'</td></tr></table>';}

Solange es in $result noch ein Record gibt mit sowohl einem Titel als einem Text, werden diese zum Bildschirm geschrieben in einer Tabelle. Hierfür muss man die Variablen in einer Tabelle eingeben. Es ist weiter darauf zu achten, dass eine Tabelle ein Block-Element ist, die automatisch unter einander kommen. Wenn Sie Inlign-Elementen wie etwa Links benutzen, müssen Sie zusätzlich immer ein Zeilenumbruch dazu schreiben.


if ($nr>0)
echo'<a href="seite.php?anzahl='.$anzahl_m.'" class="s">Zurück</a> ';
if ($anzahl_test<$n)
echo'<a href="seite.php?anzahl='.$anzahl_p.'" class="s">Weiter</a>';
?>

Jetzt kommen noch die Links um die vorherigen bzw. nächsten zehn News-Einträge zeigen zu lassen. Jeder Link wird eine Variable mitgegeben, die den folgenden Werten haben kann:
  • wenn man die vorherige zehn News-Einträge sehen möchte, ist der Variable $anzahl gleich $anzahl_m ($anzahl minus 10)
  • wenn man die nächsten zehn News-Einträge sehen möchte, ist der Variable $anzahl gleich $anzahl_p ($anzahl plus 10)
Anmerkung:

Ich habe hier für die Berechnungen der Variablen jedesmal die Zahl 10 benutzt, weil ich zehn Records pro Seite anzeige, in der Praxis wird aber immer der Wert des Variablen $pro_seite benutzt (den Wert wird am Anfang vergeben).


[back to top]



Userdaten
User nicht eingeloggt

Gesamtranking
Werbung
Datenbankstand
Autoren:04508
Artikel:00815
Glossar:04116
News:13565
Userbeiträge:16552
Queueeinträge:06245
News Umfrage
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
Mobile Nutzung möglich (Ipone, Android)
Externe API Schnittstelle/Plugins dritter
Zeiterfassung meiner Mitarbeiter
Exportieren in CSV/XLS
Siehe Kommentar



[Results] | [Archiv] Votes: 1150
Comments: 0