PC-Freak :D
Hi,
ich bin gerade dabei eine neue Webseite für ein Projekt von mir zu programmieren
Da braucht man natürlich immer ein Newssystem etc.
Das eigentliche Newssystem habe ich bereits. Es gibt einfach die Daten aus einer Datenbanktabelle aus, aber nur eine bestimmte Anzahl, zum Beispiel nur 5. Wenn aber mehr Einträge da sind, dann kommt eine Seitenfunktion. Man klickt auf die 2. Seite und da sieht man die älteren Einträge .
Soo, jetzt wäre es aber noch toll, wenn man auf die Überschrift eines Newsbeitrag klicken könnte, und dann in eine Einzelansicht gelangen könnte.
Und unter dem einzelnen Beitrag sollte man Kommentieren können.
Hier ist erst einmal der bisherige Code:
Wie kriege ich das mit Einzelansicht und Kommentarfunktion hin?
Das mit der Einzelansicht könnte man ja irgendwie so machen:
Man packt um die Überschrift einen Link mit dem Ziel "einzelartikel.php?id=1" und auf der einzelartikel.php prüft man die id und zeigt dementsprechend den zugehörigen Artikel an. (Ist das aber auch sicher? weil das ?id= kann jeder verändern. Man könnte vorher daraus ein integer machen iwie so: $id = (int)$_GET['id']. Hilft das was?=
Bei der Kommentarfunktion habe ich leider keine Ahnung, wie man das realisieren kann.
Danke schon mal für eure Hilfe,
LG
Dennis
PS: eine kleine nebensächliche Frage noch, und zwar zu dem Teil hier:
Was muss man daran ändern, damit er nur eine reine Seitenanzahl anzeigt, und nicht die artikelnummern 1-3 oder 2-4 oder so.
wenn ich das §anf - $end durch $anf ersetze, dann kommt nur [1] [3] [5] [7] etc.
ich bin gerade dabei eine neue Webseite für ein Projekt von mir zu programmieren
Da braucht man natürlich immer ein Newssystem etc.
Das eigentliche Newssystem habe ich bereits. Es gibt einfach die Daten aus einer Datenbanktabelle aus, aber nur eine bestimmte Anzahl, zum Beispiel nur 5. Wenn aber mehr Einträge da sind, dann kommt eine Seitenfunktion. Man klickt auf die 2. Seite und da sieht man die älteren Einträge .
Soo, jetzt wäre es aber noch toll, wenn man auf die Überschrift eines Newsbeitrag klicken könnte, und dann in eine Einzelansicht gelangen könnte.
Und unter dem einzelnen Beitrag sollte man Kommentieren können.
Hier ist erst einmal der bisherige Code:
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$db = @new MySQLi('localhost', 'User', 'Passwort', 'Datenbank');
if (mySQLi_connect_errno()) {
die('in news.php: Konnte keine Verbindung zu Datenbank aufbauen, MySQL meldete: '.mysqli_connect_error());
}
//Hier setze ich $start und $step
if (isset($_GET['start'])) {
$start = $_GET['start'];
} else {
$start = 0;
}
$step = 2; // Wie viele Einträge gleichzeitig?
$result = $db->query("SELECT * FROM artikel");
$zeilen = $result->num_rows;
echo "Seiten: ";
for ($i = 0; $zeilen > $i; $i = $i + $step) {
$anf = $i + 1;
$end = $i + $step;
if ($end > $zeilen) {
$end = $zeilen;
}
if ($anf == $end) {
echo " [ <a style='color: #000; font-weight: bold;' href=\"artikel.php?start=$i\">$end</a> ] ";
} else {
echo " [ <a style='color: #000; font-weight: bold;' href=\"artikel.php?start=$i\">$anf - $end</a> ] ";
}
}
echo "<hr>";
$sql = "SELECT * FROM artikel ORDER BY datum DESC LIMIT $start, $step";
$result = $db->query($sql);
if (!$result) {
die ('Konnte den Folgenden Query nicht senden: '.$sql."<br />\nFehlermeldung: ".$db->error);
}
if (!$result->num_rows) {
echo "<fieldset class=\"fehler\">Es sind keine Newsbeiträge vorhanden</fieldset>";
} else {
while ($row = $result->fetch_assoc()) {
echo "<div class=\"artikel\">";
echo "<strong>" . $row['titel'] . "</strong> |";
echo $row['datum'];
echo "<hr class=\"hoch-verschoben\">";
echo $inhalt_eingetragen = substr($row['inhalt'], 0, 100);
if(strlen($inhalt_eingetragen) >= "100") {
echo "...";
}
echo "<hr></div>";
}
}
$start = $start + $step;
if ($start < $zeilen) {
echo "[ <a style='color: #666; font-weight: bold;' href=\"artikel.php?start=$start\"> Ältere Einträge ></a> ]";
}
@$newStart = $_GET['start'] - $step;
if (isset($_GET['start']))
{
$start = intval($_GET['start']);
if ($start<0)
{
$start = 0;
}
}
if ($newStart<0)
{
$newStart = 0;
}
if ($newStart!=$start)
{
if (isset($_GET['start'])) {
echo "[ <a style='color: #666; font-weight: bold;' href=\"artikel.php?start=$newStart\"> < Neuere Einträge</a> ]";
}
}
?>
Wie kriege ich das mit Einzelansicht und Kommentarfunktion hin?
Das mit der Einzelansicht könnte man ja irgendwie so machen:
Man packt um die Überschrift einen Link mit dem Ziel "einzelartikel.php?id=1" und auf der einzelartikel.php prüft man die id und zeigt dementsprechend den zugehörigen Artikel an. (Ist das aber auch sicher? weil das ?id= kann jeder verändern. Man könnte vorher daraus ein integer machen iwie so: $id = (int)$_GET['id']. Hilft das was?=
Bei der Kommentarfunktion habe ich leider keine Ahnung, wie man das realisieren kann.
Danke schon mal für eure Hilfe,
LG
Dennis
PS: eine kleine nebensächliche Frage noch, und zwar zu dem Teil hier:
PHP:
...
echo "Seiten: ";
for ($i = 0; $zeilen > $i; $i = $i + $step) {
$anf = $i + 1;
$end = $i + $step;
if ($end > $zeilen) {
$end = $zeilen;
}
if ($anf == $end) {
echo " [ <a style='color: #000; font-weight: bold;' href=\"artikel.php?start=$i\">$end</a> ] ";
} else {
echo " [ <a style='color: #000; font-weight: bold;' href=\"artikel.php?start=$i\">$anf - $end</a> ] ";
}
}
...
Was muss man daran ändern, damit er nur eine reine Seitenanzahl anzeigt, und nicht die artikelnummern 1-3 oder 2-4 oder so.
wenn ich das §anf - $end durch $anf ersetze, dann kommt nur [1] [3] [5] [7] etc.