rob: / PHP : Permalinks und Templates

Beitrag lesen

Hi!

Konkret: Wie kann ich einer Template-php-File mitteilen, welcher Beitrag aus der DB ausgelesen werden soll, wenn die URL etwa http://www.example.com/index.php?artikel-id=123 lautet.

Per URL wird eine ID übergeben. Damit kannst du dann die gewünschten Daten aus deiner DB holen.
Dazu fragst du erstmal, ob der Parameter artikel-id per URL übergeben wurde.
Ist das der Fall, holst du den Artikel mit der angegebenen ID aus deiner Tabelle.
Das könnte in etwa so aussehen:

<?php  
if ( isset( $_GET['artikel-id'] ) ) {  
 $sql = "SELECT FROM tabelle WHERE id = ". $_GET['artikel-id'];  
 $res = mysql_query( $sql );  
 $artikel = mysql_fetch_assoc( $res );  
 echo $artikel['artikeltext'];  
}  
?>

Natürlich fehlt da noch die Codezeile, wo die Verbindung zum DB-Server hergestellt und die Datenbank gewählt wird (mysql_connect/mysql_select_db).
Dann sollte man den übergebenen Parameter nicht ohne Prüfung in die Abfrage einbauen, da sonst ein Angriff per SQL-Injektion möglich wäre (mysql_real_escape_string).
Und eine Fehlerbehandlung sollte auch noch eingebaut werden.
Aber das Prinzip, wie es funktioniert, sollte erkennbar sein.

Natürlich müßtest du auch nicht die ID nutzen.
Ich weiß nicht, welche Spalten du in deiner Tabelle hast...
Eventuell hast du ja eine Spalte "Artikel-Titel" oder so. Darüber könnest du dir dann auch den Artikel holen.
$sql = "SELECT FROM tabelle WHERE artikeltitel = '". $_GET[artikel] ."'";
Da im Artikeltitel aber Leer- und Sonderzeichen vorkommen könnten, die im URL nicht zulässig sind, müßtest du da dann umwandeln.

Schöner Gruß,
rob