Datenbankabfrage, einzelnes Feld, aktuellster Wert

stuffjm

Mitglied
Hallo,
Ich versuche mich gerade etwas mit php schlau zu machen, scheitere aber an folgendem Vorhaben:

Ich hab in meiner Datenbank "Supermarkt" eine Tabelle "Obst":

Name | URL | Datum
Apfel | www.apfel.de | 01.01.2011
Birne | www.birne.de | 03.02.2011
...

Nun will auf der Seite einen Link mit dem "Namen" als Beschriftung und der "URL" für den Link platzieren. Es soll aber stets der aktuellste Wert aus der Datenbank entnommen werden ("Datum").

Das Ergebnis in HTML wäre also

HTML:
<a href=http://www.birne.de">Birne</a>
bzw.
<a href="<?php ... ?>"><?php ... ?></a> (:confused:)

Ich wäre unendlich dankbar, wenn mir jmd. den entsprechenden php Code bzw. eine Hilfestellung nennen kann.

Vielen Dank im Voraus,
stuffjm
 
Als aller erstes einmal PHP-Einfach.de anschauen :)

Dann würde ich das Datum in der Datenbank als Timestamp speichern, ist nachher für die Ausgabe mit dem Datum sortiert viel besser und auch einfacher.

PHP:
<?php
$abfrage = "SELECT * FROM supermarkt ORDER BY datum DESC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
   {
       echo '<a href="'.$row->url.'">'.$row->name.'</a>';
   }
?>

Wenn du nun das Datum als Timestamp sicherst funktioniert die Ausgabe so.
 
Vielen Dank, das klappt soweit ganz gut, nur spuckt er den gesamten Inhalt der Tabelle aus und nicht nur das eine aktuellste Feld. Gibt es da einen Parameter wie "Max Values" o.ä. mit dem ich die Liste auf einen Eintrag beschränke?


PHP:
<?php
	
$serv="localhost";
$user="hans";
$pass="xxx";
$base="datenbank";

@mysql_connect($serv, $user, $pass) or exit("Fehler bei Verbindung zur Datenbank: $serv $user");
@mysql_select_db($base) or exit("Datenbank $base nicht vorhanden");

$abfrage = "SELECT * FROM jos_content ORDER BY modified DESC";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
	{
	 echo '<a href="'.$row->url.'">'.$row->title.'</a>';
	}

?>
 
Wenn du nur einen Eintrag brauchst, dann kannst du noch den Parameter LIMIT zum SQL-Query hinzufügen:
SQL:
SELECT * FROM jos_content ORDER BY modified DESC LIMIT 1
Damit sparst du Speicher und Zeit bei der Abfrage.
 
Zurück