Latest News

unlord

Erfahrenes Mitglied
Ich habe vor auf meiner Site z.B. die News der letzten 5 Tage in einer extra Navi-Box anzeigen zu lassen. Kann mir dazu jemand einen mySQL-Befehl geben der die die letzten 5 einträge aus einer Tabelle liest?

...und kann mir auch jemand erklären wie man es schafft, einen Link für jede Latest News automatisch zu erstellen, die dann direkt zu einer Site führt, auf der nichts außer diesem News-Eintrag steht?

mfg
unlord
 
mysql_query("SELECT * FROM news LIMIT 0,5 ORDER BY id DESC");

evt. ist das LIMIT erst nach dem ORDER BY habs nicht probiert...

und das mit dem Link kannst du dann so machen:

<a href="bla.php?newsid=$id">bla</a>

Und das SQL-Query in dieser Seite sieht dann so aus:

mysql_query("SELECT * FROM news WHERE id = $GET['id']");

Ich hoffe ich konnte dir ein bisschen helfen :)
 
Also ich habe die Latest News bisher so gemacht:

PHP:
<?php
  $sql = "SELECT Titel FROM news ORDER BY ID DESC LIMIT 0,5";
  $ln_a = mysql_query($sql);
  while($ln_f = mysql_fetch_array($ln_a)) {
        echo "<font color=\"FF0000\">:: ";
        echo $ln_f['Titel'];
        echo " ::</font>";
        echo "<br><br>";
  }
?>

Das funktioniert auch, nur habe ich es nicht geschafft die Titel zu verlinken, könntest du das mal näher erklären? Die einzelnen Latest News sollten dann z.B. mit folgender URL aufgerufen werden können: index.php?section=ln&ID=56

mfg
unlord
 
Ja sicher:

Die ID musst du jetzt auch mit Abfragen und dann in den Link machen, also so:

PHP:
<?php 
  $sql = "SELECT ID, Titel FROM news ORDER BY ID DESC LIMIT 0,5"; 
  $ln_a = mysql_query($sql); 
  while($ln_f = mysql_fetch_array($ln_a)) { 
        echo "<a href=\"einzel.php?id=" . $In_f['ID'] . "\"><font color=\"FF0000\">:: "; 
        echo $ln_f['Titel']; 
        echo " ::</a></font>"; 
        echo "<br><br>"; 
  } 
?>

und der Code in der Datei einzel.php sollte dann etwa so aussehen:

PHP:
<?
$sql = "SELECT Titel FROM news WHERE ID = $_GET['id']";
$In_a = mysql_query($sql);
$In_b = mysql_fetch_row($In_a);
echo $ln_f['Titel'];
?>
 
Bei diesem Script kommt der Fehler:

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\qtut\lneinzel.php on line 2

Aber das war sowieso nicht was ich wollte... ich möchte nämlich, dass das ganze Script in einer Datei z.B. lastnews.php verpackt ist, auf der erstmal nur die Titel stehen. Wenn ich dann auf ein Titel klicke soll eine Url aufgerufen werden, z.B. index.php?section=lastnews&ID=5. So wie bei einem Newsscript z.B., da wird am Schluss ein Script eingefügt, dass dann zu einer neuen Site linkt, weil es mehr Einträge gibt als das Limit erlaubt, z.B. so:

PHP:
<?php
        if($ID > 0)
        {
                $newID = ($ID - $limit < 0) ? 0 : ($ID-$limit);
                echo "<a href=".$_SERVER['PHP_SELF']."?section=archiv&ID=".$newID.">&lt;&lt; zurück</a>&nbsp;&nbsp;";
        }
        if($ID + $limit < $total)
        {
                $newID = $ID + $limit;
                echo " <a href=".$_SERVER['PHP_SELF']."?section=archiv&ID=".$newID.">vor &gt;&gt;</a>";
        }
?>

Wobei hier nicht einmal eine Scriptdatei aufgerufen wird wenn es ...&ID heißt.

mfg
unlord
 
Doch, doch ^^ aber ich hatte mir gedacht, dass man das auch mit einer Zeile wie
PHP:
echo "<a href=".$_SERVER['PHP_SELF']."?section=archiv&ID=".$newID.">
verwirklichen könnte, die in der gleichen datei steckt, oder geht das nicht?

Und probiere mal bitte dein Script aus ob es bei dir geht, oder ob ich nur zu blöd bin ^^
 
Zuletzt bearbeitet:
Ich habs jetzt einfach so gemacht:

PHP:
<?php
  echo "<h2>Latest News</h2>";
  if(isset($_GET["ID"])) {
     $sql = "SELECT Titel,Inhalt,Autor,Datum,ID FROM News WHERE ID = '$ID'";
     $sql_af = mysql_query($sql);
     while($data_ID = mysql_fetch_array($sql_af)) {
           echo "<font color=\"red\">:: ";
           echo $data_ID['Titel'];
           echo " ::</font><br>";
           echo $data_ID['Inhalt'];
           echo "<p align=\"right\">";
           echo $data_ID['Autor'];
           echo " @ ";
           echo $data_ID['Datum'];
           echo "</p><br><br>";
           echo "<a href=\"javascript:history.go(-1)\">&lt;&lt; zurück</a>";
     }
  } else {
    $query = "SELECT ID,Titel FROM News ORDER BY Datum DESC LIMIT 0,5";
    $sql_f = mysql_query($query);
     while($data = mysql_fetch_array($sql_f)) {
           $ID = $data['ID'];
           echo "<a href=\"index.php?section=ln&ID=$ID\">";
           echo "<font color=\"red\">";
           echo $data['Titel'];
           echo "</font></a><br><br>";
     }
  }
?>

Funktioniert einwandfrei :) .

mfg
unlord
 
OK super :) sorry, ich war leider das Ganze Wochenende nicht zu Hause, habe erst jetzt gelesen dass du geschrieben hast ich soll das Script mal testen ;-)
 
Jo hab mir sowas schon gedacht und deswegen mal bissel rumprobiert, no problem ;)

Weiß jetzt zufällig noch einer wie man das ganze mit den Einträgen bzw. den Titeln der letzten 5 Tage hinbekommt :) ?

mfg
unlord
 
Zurück