pat270881
12-03-2006, 22:12
Hi,
Ich habe eine PHP-Seite wo dynamisch Produkte in einer Tabelle aufgelistet werden, wobei es bei jedem Produkt immer ein kleines Bildchen angezeigt werden soll (Die Bilder kommen ebenfalls von einer Datenbank). Ich möchte jetzt am Beginn der Seite alphabetische Links hinzufügen, womit man durch Klicken auf den jweiligen Buchstaben eben zu dem Anfang der Produkte mit diesem Buchstaben automatisch springt. Da ja die Produktliste dynamisch erstellt wird, helfen da normale Anker-Links nichts. Weiß jemand wie man das am einfachsten realisiert?
lg pat
Mmhhh...
In die Schleife, die die Daten ausgibt, folgendes einbauen:
- Den Anfangsbuchstaben des momentanen Datensatzes in Variable x ablegen
- Schauen, ob Variable x sich vom Anfangsbuchstaben des letzten Datensatzes (Sagen wir, Variable x_alt) unterscheidet. Wenn ja, sind wir am Anfang des nächsten Buchstabens. Dann Anker ausgeben: <a name='buchstabe_{x}'>
- Variable x für den nächsten Schleifendurchlauf als x_alt speichern.
So funktionieren dann Anker-Links nach dem Muster "buchstabe_a" bis "buchstabe_z". Existieren in einer Ausgabe keine Datensätze mit einem bestimmten Anfangsbuchstaben, funktioniert der Anker nicht.
pat270881
14-03-2006, 01:32
hi,
danke für deine Antwort...Ich habe das mal implementiert, wie die Tabelle aussehen soll:
<?php
// Connect to the MySQL server
if (!($connection = @ mysql_connect($hostname, $username, $password)))
die("Cannot connect");
if (!(mysql_select_db($databaseName, $connection)))
showerror();
// Run the query on the connection
if (!($result = @ mysql_query ($query, $connection)))
showerror();
// Start a table, with column headers print "\n<table border=1>\n<tr>\n" .
if(isset($_GET['id']))
{
$parameter = $_GET['id'];
$parameter = "products";
print "<tr>";
print "<th><a style=\"color:#DCDFF2; text-decoration: underline;\" href=\"products.php?id=$parameter\">Name</a></th>";
print "<th><a style=\"color:#DCDFF2; text-decoration: underline;\" href=\"products.php?id=$parameter\">Price</a></th>";
print "</tr>";
}
// Until there are no rows in the result set, fetch a row into
// the $row array and ...
while ($row = @mysql_fetch_array ($result))
{
$productId = $row["ProductId"];
$name = $row["Name"];
$price = $row["UnitPrice"];
$formattedPrice = "€ " . number_format($price, 2, '.', ',');
print "<tr>";
print "<td> <a href=\"details.php?id=$productId\"> $name </a></td>";
print "<td align=\"right\"> $formattedPrice </td>";
print "</tr>";
}
?>
Nur ist mir jetzt noch nicht ganz klar, wie ich das definieren soll, dass bei jedem neuen Anfangsbuchstaben ein Anker gesetzt wird?:(
lg pat
penizillin
14-03-2006, 02:03
http://php-resource.de/forum/showthread.php?s=&threadid=50454