Dynamische Linkliste mit MySQL und PHP erstellen

Tonda

Erfahrenes Mitglied
Hallo,

ich lasse mit PHP eine Liste aus einer MySQL-Datenbank auslesen.
Die Liste soll per MySQL geplegt werden.
Nun sollen die Inhalte der Liste verlinkbar sein:
z.B.:
Liste:
Link 1 ->ruft Seite 1 auf
Link 2 ->ruft Seite 2 auf
Link 3 ->ruft Seite 3 auf
usw.

PHP:
<?php     include("cgi-bin/zugriffsql.inc.php");
                       $sql = "SELECT * FROM adressen";        
                       $result = mysql_query($sql);        
                       while ($row = mysql_fetch_assoc($result)) {           
                       echo "$row[Vorname] <br>\n";       
                       }  
?>

Mir fällt dazu nix ein - googel war auch nicht der Hit. Bin dankbar für Eure Hilfe.
MfG Stefano
 
Sag doch mal, wie Deine Tabelle adressen aufgebaut ist und woraus der Link erzeugt werden soll?
Soll die neue Seite 1/2/3... auch aus der Datenbank generiert werden?

Fragen über Fragen.
 
Servus,

also, die Tabelle adressen hat:
1. Feld: id
2. Feld: Vorname
3. Feld: Name
4. Feld Str
5. Feld PLZ
6. Feld Ort
7. Kategorie (hier wird später mit JOIN die Tabelle kategorien angehängt; das stehen Werte wie Privat, Verwandt... drin)
8. Feld Bild

Jetzt lasse ich mit PHP das 2. Feld auslesen um daraus eine Liste mit den Vornamen zu generieren.
Jetzt sollte da stehen: Hans
Peter
Gustav
Wenn ich jetzt auf Hans klicke, soll eine neue Seite aus den Daten von Hans generiert werden.

So habe ich mir das gedacht.
MfG
Stefano
 
Und wo ist dein Problem ..

Erstelle einen neuen Script der anhand einer übergebenen ID den
entsprechenden Datensatz ausliest und ausgibt.

Die ID übergibst du per URL und liest Sie in Script 2 mit $_GET['id'] aus.
Dann baust du noch eine Abfrage ein um eine leere ID abzufangen (der Richtigkeit halber)
und fertig.

Der Link sieht in Script eins so aus :
PHP:
<?php     include("cgi-bin/zugriffsql.inc.php");
                       $sql = "SELECT * FROM adressen";        
                       $result = mysql_query($sql);        
                       while ($row = mysql_fetch_assoc($result)) {           
                       echo '<a href="script2.php?id='.$row['id'].'">'.$row['Vorname'].'</a><br>';       
                       }  
?>

Und nur so ein allgemeiner Tip :
Schreibe Felder in der DB immer klein, das erspart Fehlersuche beim Ausgeben.
Sonst wunderst du dich über leere Seiten weil du einmal statt Vorname vorname
geschrieben hast.
 
PHP:
<?php

require('./cgi-bin/zugriffsql.inc.php');

if ($_REQUEST['action'] == 'detail' && !empty($_REQUEST['id'])) {

    $result = mysql_query("SELECT Vorname,Name,Str,PLZ,Ort,Bild FROM adressen WHERE id='".addslashes($_REQUEST['id'])."'");
    while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {

        echo('<img src="'.htmlentities(urlencode($row['Bild'])).'" alt="'.htmlentities($row['Vorname'].' '.$row['Name']).'" /><br /><br />'."\n");
        echo('<b>'.htmlentities($row['Vorname'].' '.$row['Name']).'</b><br />'."\n");
        echo(htmlentities($row['Str']).'<br />'."\n");
        echo(htmlentities($row['PLZ'].' '.$row['Ort']).'<br /><br />'."\n");

    }

} else {

    $result = mysql_query("SELECT id,Vorname FROM adressen ORDER BY Vorname ASC");
    while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {

        echo('<a href="'.$_SERVER['PHP_SELF'].'?action=detail&amp;id='.htmlentities($row['id']).'">'.htmlentities($row['Vorname']).'</a><br />'."\n");

    }

}

?>
Ich bin mal davon ausgegangen, dass in der Spalte Bild eine URL zu dem entsprechenden Bild steht. Ansonsten musste das noch entsprechend ändern.

Gruß thing
 
Zuletzt bearbeitet:
Wenn Du in der ersten Abfrage nur den Namen haben willst, bzw. wegen dem Link Name und ID, dann solltest Du Deinem Query das auch so sagen, das ist performanter, als mit * alle Felder auszulesen:
Code:
SELECT id, Vorname FROM adressen;
Evtl. auch sortiert?
Code:
SELECT id, Vorname FROM adressen ORDER BY Vorname;
 
Hallo,

Danke für die schnelle Hilfe. Mit ein bißchen basteln ab ich es dann hinbekommen.

MfG
Stefano
 
Zurück