zu einer Detailseite navigieren
Ronald
- php
Hallo,
habe eine Problem mit PHP. Und zwar habe ich eine Seite die Tabellen mit den verschiedenen Datensätzen generiert „product_result_list.php“. Also eine sich wiederholende Tabelle. Klappt soweit auch bestens. Jetzt möchte ich von dieser Seite auf eine „detail-Seite“ navigieren (product_detail.php). Die gibt es auch schon, ist dynamisch angelegt und zeigt immer einen Datensatz pro Seite, mit der Möglichkeit zu jedem anderen Datensatz zu navigieren. Ich möchte aber, das in der Detail-Seite immer der richtige Datensatz angezeigt wird. Das funzt leider nicht. In der Dreamweaver Hilfe habe ich folgendes gefunden:
(PHP) Fügen Sie im Eigenschafteninspektor im Feld „Hyperlink“ die folgende Zeichenfolge am Ende der URL ein:
?recordID=<?php echo $row_recordsetName['fieldName']; ?>
Das Fragezeichen zeigt dem Server an, dass ein oder mehrere URL-Parameter folgen. Der Ausdruck recordID ist der Name des URL-Parameters. (Sie können einen beliebigen Namen wählen.) Schreiben Sie sich den Namen des URL-Parameters auf. Sie benötigen ihn später für die Detailseite.
Der Ausdruck nach dem Gleichheitszeichen ist der Wert des Parameters. In diesem Fall wird der Wert durch einen PHP-Ausdruck generiert, der eine Datensatz-ID aus der Datensatzgruppe zurückgibt. Für jede Zeile in der dynamischen Tabelle wird eine andere ID generiert. Ersetzen Sie im PHP-Ausdruck recordsetName durch den Namen Ihrer Datensatzgruppe und fieldName durch den Namen des Felds in der Datensatzgruppe, die den jeweiligen Datensatz eindeutig kennzeichnet. Normalerweise besteht das Feld aus einer Datensatz-ID. Im folgenden Beispiel besteht das Feld aus eindeutigen Standortcodes.
Das funzt leider auch nicht. Könnte mal jemand einen Tipp geben?
Gruß
Ronald
Hello,
Die gibt es auch schon, ist dynamisch angelegt und zeigt immer einen Datensatz pro Seite, mit der Möglichkeit zu jedem anderen Datensatz zu navigieren.
und woran identifiziert sie den Datensatz der angezeigt wird?
?recordID=<?php echo $row_recordsetName['fieldName']; ?>
dieser Parameter sollte zu dem oben genannten "woran" passen.
MfG
Rouven
Hi Rouven,
vielleicht nochmal zum besseren Verständnis. Die Detailseite funktioniert in sich geschlossen und hat unten eine Navigation, die es erlaubt zum jeweiligen Datensatz zu navigieren.
Die Seite mit der Tabelle holt die Daten aus der gleichen Datenbank und der gleichen Tabelle wie die Detailseite, nur zeigt sie weniger Informationen.
Was ich erreichen möchte ist, das ich in der Tabelle z.B. den Produktnamen (der auch dynamisch generiert wird) mit der Detailseite verlinke und die Detailseite dann zum entsprechenden Datensatz springt.
Hier auszugsweise der Quellcode:
<?php require_once('Connections/ronaldo_caffee.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$currentPage = $_SERVER["PHP_SELF"];
$maxRows_rsProducts = 3;
$pageNum_rsProducts = 0;
if (isset($_GET['pageNum_rsProducts'])) {
$pageNum_rsProducts = $_GET['pageNum_rsProducts'];
}
$startRow_rsProducts = $pageNum_rsProducts * $maxRows_rsProducts;
mysql_select_db($database_ronaldo_caffee, $ronaldo_caffee);
$query_rsProducts = "SELECT * FROM products, supplier WHERE supplier.s_ID=products.SupplierID";
$query_limit_rsProducts = sprintf("%s LIMIT %d, %d", $query_rsProducts, $startRow_rsProducts, $maxRows_rsProducts);
$rsProducts = mysql_query($query_limit_rsProducts, $ronaldo_caffee) or die(mysql_error());
$row_rsProducts = mysql_fetch_assoc($rsProducts);
if (isset($_GET['totalRows_rsProducts'])) {
$totalRows_rsProducts = $_GET['totalRows_rsProducts'];
} else {
$all_rsProducts = mysql_query($query_rsProducts);
$totalRows_rsProducts = mysql_num_rows($all_rsProducts);
}
$totalPages_rsProducts = ceil($totalRows_rsProducts/$maxRows_rsProducts)-1;
$queryString_rsProducts = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_rsProducts") == false &&
stristr($param, "totalRows_rsProducts") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_rsProducts = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_rsProducts = sprintf("&totalRows_rsProducts=%d%s", $totalRows_rsProducts, $queryString_rsProducts);
?>
Und hier der Link:
<td valign="top" align="left" width="148" class="productname"><a href="product_detail.php?SKU=<?php echo $row_rsProducts['SKU']; ?>"><?php echo $row_rsProducts['ProductName']; ?></a></td>
Mahlzeit Ronald,
vielleicht nochmal zum besseren Verständnis. Die Detailseite funktioniert in sich geschlossen und hat unten eine Navigation, die es erlaubt zum jeweiligen Datensatz zu navigieren.
Das ist vollkommen klar. Aber woran "erkennt" die Detailseite, welchen der vielen möglichen Datensätze sie anzeigen soll?
Ich vermute mal, an der/dem per Parameter übergebenen "SKU" - was immer das auch ist ... (alle anderen Codezeilen waren ziemlich überflüssig):
Und hier der Link:
<td valign="top" align="left" width="148" class="productname"><a href="product_detail.php?SKU=<?php echo $row_rsProducts['SKU']; ?>"><?php echo $row_rsProducts['ProductName']; ?></a></td>
Also wäre die Frage: wo bzw. wie wertet die Detailseite den entsprechenden GET-Parameter aus?
MfG,
EKKi
Hi Ekki,
nun, da ich Laie bin, was PHP angeht, dachte ich, dass die SKU (Artikel- oder Seriennummer), die ja auch auf der Detailseite Verwendung findet, ausreicht, damit die Detail-Seite weiss, welchen Datensatz sie anzeigen soll.
Die Verlinkung kann ja wohl nur von der "Listen-Seite" ausgehen oder? Also alle Parameter, die die Detail-Seite erhält stehen auf der Listen-Seite ?!?!?!
Gruß,
Ronald
Hello,
nun, da ich Laie bin, was PHP angeht
das ist nichts schlimmes, macht die Hilfestellung aber schwierig.
TYPISCHERWEISE wird es für einen Datensatz ein Identifizierungskritierum geben, z.B. eine Produktnummer. Eine Detailseite bekommt genau die Produktnummer genannt und weiß sodann was sie anzeigen soll. In dem Fall reicht es - siehe von dir geposteter Hilfetext - die Produktnummer von der Listenseite zu übergeben.
Der Quelltext den du gepostet hast, ist das die Liste oder die Detailseite? Sah mehr nach der Liste aus...Könntest du vielleicht nochmal Auszüge aus der Detailseite posten, vielleicht kann man ablesen, was für Eingabedaten du bereits hast die hinreichend sind um den entsprechenden Satz anzuzeigen. Der von dir gepostete Code ist vollkommen unkommentiert und damit etwas schwer nachzuvollziehen, es sieht aus wie ein Paging-System kombiniert mit irgendwas...
MfG
Rouven
Hi Rouven,
das war der Code der "listen-Seite". Der Quellcode ist mit Ausnahme des Links automatisch vom Dreamweaver generiert worden.
Hier noch der Quellcode der Detailseite. Hoffe das das ausreicht. Auf jeden Fall "bedienen" sich beide Seiten aus der gleichen Datenbank und den gleichen Tabellen. Falls Du noch anderen Code benötigst, sag bitte Bescheid.
Grüße,
Ronald
<?php require_once('Connections/ronaldo_caffee.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
$currentPage = $_SERVER["PHP_SELF"];
$maxRows_rsProducts = 1;
$pageNum_rsProducts = 0;
if (isset($_GET['pageNum_rsProducts'])) {
$pageNum_rsProducts = $_GET['pageNum_rsProducts'];
}
$startRow_rsProducts = $pageNum_rsProducts * $maxRows_rsProducts;
mysql_select_db($database_ronaldo_caffee, $ronaldo_caffee);
$query_rsProducts = "SELECT * FROM products, supplier WHERE supplier.s_ID=products.SupplierID";
$query_limit_rsProducts = sprintf("%s LIMIT %d, %d", $query_rsProducts, $startRow_rsProducts, $maxRows_rsProducts);
$rsProducts = mysql_query($query_limit_rsProducts, $ronaldo_caffee) or die(mysql_error());
$row_rsProducts = mysql_fetch_assoc($rsProducts);
if (isset($_GET['totalRows_rsProducts'])) {
$totalRows_rsProducts = $_GET['totalRows_rsProducts'];
} else {
$all_rsProducts = mysql_query($query_rsProducts);
$totalRows_rsProducts = mysql_num_rows($all_rsProducts);
}
$totalPages_rsProducts = ceil($totalRows_rsProducts/$maxRows_rsProducts)-1;
$queryString_rsProducts = "";
if (!empty($_SERVER['QUERY_STRING'])) {
$params = explode("&", $_SERVER['QUERY_STRING']);
$newParams = array();
foreach ($params as $param) {
if (stristr($param, "pageNum_rsProducts") == false &&
stristr($param, "totalRows_rsProducts") == false) {
array_push($newParams, $param);
}
}
if (count($newParams) != 0) {
$queryString_rsProducts = "&" . htmlentities(implode("&", $newParams));
}
}
$queryString_rsProducts = sprintf("&totalRows_rsProducts=%d%s", $totalRows_rsProducts, $queryString_rsProducts);
?>
Hello,
Hier noch der Quellcode der Detailseite. Hoffe das das ausreicht.
hmh, das ist _exakt_ der selbe den du bereits zuvor gepostet hast. Es muss noch irgendwo mehr geben, da ist nichts von Ausgabe zu sehen, alles was dieser Abschnitt tut ist das bereits zuvor beschriebene Paging...
MfG
Rouven
Okay, hier der Quellcode der Detail-Seite. Du hattest recht, der andere Quellcode ist in beiden Dokumenten gleich.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO 8859-1" />
<title>Ronaldo's Cafe</title>
<!--[if IE 5]>
<style type="text/css">
/* Fügen Sie CSS-Box-Modell-Korrekturen für IE 5* in diesen bedingten Kommentar ein. */
.thrColAbsHdr #sidebar1 { width: 180px; }
.thrColAbsHdr #sidebar2 { width: 190px; }
</style>
<![endif]-->
<link href="ronaldos_coffee.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColAbsHdr">
<div id="container">
<div id="header">
<img src="images/header.jpg" alt="" width="770" height="87" />
<!-- end #header --></div>
<div id="sidebar1">
<img src="images/nav_franchise.gif" width="170" height="30"><br>
<ul>
<li><a href="news_detail.php">News</a></li>
<li><a href="product_search.php">Artikelsuche</a></li>
<li><a href="suppliers_search.php">Lieferanten</a></li>
<li><a href="product_add.php">Artikel hinzufügen</a></li>
<li><a href="suppliers_add.php">Lieferant hinzufügen</a></li>
<li><a href="franchise_add.php">Franchise hinzufügen</a></li>
<li><a href="news_add.php">Freigabe hinzufügen</a></li>
<li><a href="franchise_search.php">Franchise-Suche</a></li>
</ul>
<img src="images/nav_blackbox.gif" width="170" height="15">
<!-- end #sidebar1 --></div>
<div id="sidebar2">
<p><span class="productname"><?php echo $row_rsProducts['ProductName']; ?><br />
</span><br />
<img src="<?php echo $row_rsProducts['BigImage']; ?>" alt="test" /></p>
<table border="0" align="center">
<tr>
<td><?php if ($pageNum_rsProducts > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, 0, $queryString_rsProducts); ?>"><img src="First.gif" /></a>
<?php } // Show if not first page ?></td>
<td><?php if ($pageNum_rsProducts > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, max(0, $pageNum_rsProducts - 1), $queryString_rsProducts); ?>"><img src="Previous.gif" /></a>
<?php } // Show if not first page ?></td>
<td><?php if ($pageNum_rsProducts < $totalPages_rsProducts) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, min($totalPages_rsProducts, $pageNum_rsProducts + 1), $queryString_rsProducts); ?>"><img src="Next.gif" /></a>
<?php } // Show if not last page ?></td>
<td><?php if ($pageNum_rsProducts < $totalPages_rsProducts) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, $totalPages_rsProducts, $queryString_rsProducts); ?>"><img src="Last.gif" /></a>
<?php } // Show if not last page ?></td>
</tr>
</table>
<!-- end #sidebar2 -->
</div>
<div id="mainContent">
<table width="185" cellpadding="0" cellspacing="0" id="edit">
<tr>
<td valign="bottom" class="normaltext">
Artikelnummer:</td>
</tr>
<tr>
<td class="loadtext"><?php echo $row_rsProducts['SKU']; ?></td>
</tr>
<tr>
<td valign="bottom" class="normaltext">
Beschreibung:</td>
</tr>
<tr>
<td class="loadtext"><?php echo $row_rsProducts['Description']; ?></td>
</tr>
<tr>
<td valign="bottom" class="normaltext">
Lieferfirma:</td>
</tr>
<tr>
<td class="loadtext"><?php echo $row_rsProducts['s_firma']; ?></td>
</tr>
<tr>
<td valign="bottom" class="normaltext">
Anzahl im Lager:</td>
</tr>
<tr>
<td class="loadtext"><?php echo $row_rsProducts['UnitsInStock']; ?></td>
</tr>
<tr>
<td valign="bottom" class="normaltext">
Voraussichtliche Lieferzeit:</td>
</tr>
<tr>
<td class="loadtext"><?php echo $row_rsProducts['DeliveryTime']; ?></td>
</tr>
<tr>
<td valign="bottom" class="normaltext">
Grosshandelspreis:</td>
</tr>
<tr>
<td class="loadtext"><?php echo $row_rsProducts['WholesalePrice']; ?></td>
</tr>
<tr>
<td valign="bottom" class="normaltext">
Unverbindliche Preisempfehlung:</td>
</tr>
<tr>
<td class="loadtext"><?php echo $row_rsProducts['UnitPrice']; ?></td>
</tr>
</table>
<!-- end #mainContent -->
<a href="product_add.php"><img src="images/frm-insert.GIF" alt="Insert" width="68" height="21" border="0" /></a></div>
<div id="footer">
<p><img src="images/footer_logo.jpg" width="142" height="25" align="absmiddle" /> - World's Finest Coffee's - © 2009</p>
<!-- end #footer --></div>
<!-- end #container --></div>
</body>
</html>
<?php
mysql_free_result($rsProducts);
?>
Hello,
Okay, hier der Quellcode der Detail-Seite. Du hattest recht, der andere Quellcode ist in beiden Dokumenten gleich.
wow, das ist mal ein verworrenes Ding. Also zunächst mal, irgendwo muss es NOCH mehr geben, oder ich habe die Zusammenführung übersehen. Deine ersten Postings beinhalten die Abfrage-Logik, das hier die Darstellung. Wenn man mal vage an ein MVC-Pattern denkt, dann müsste es noch irgendwo jemanden geben der beide Skripte zusammenbringt, aber das ist mal zweitrangig.
>> <table border="0" align="center">
> <tr>
> <td><?php if ($pageNum_rsProducts > 0) { // Show if not first page ?>
> <a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, 0, $queryString_rsProducts); ?>"><img src="First.gif" /></a>
> <?php } // Show if not first page ?></td>
> <td><?php if ($pageNum_rsProducts > 0) { // Show if not first page ?>
> <a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, max(0, $pageNum_rsProducts - 1), $queryString_rsProducts); ?>"><img src="Previous.gif" /></a>
> <?php } // Show if not first page ?></td>
> <td><?php if ($pageNum_rsProducts < $totalPages_rsProducts) { // Show if not last page ?>
> <a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, min($totalPages_rsProducts, $pageNum_rsProducts + 1), $queryString_rsProducts); ?>"><img src="Next.gif" /></a>
> <?php } // Show if not last page ?></td>
> <td><?php if ($pageNum_rsProducts < $totalPages_rsProducts) { // Show if not last page ?>
> <a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, $totalPages_rsProducts, $queryString_rsProducts); ?>"><img src="Last.gif" /></a>
> <?php } // Show if not last page ?></td>
> </tr>
> </table>
das hier scheint mir die von dir angesprochene "eigene" Navigation der Detailseite zu sein. Und der entnehme ich etwas, das seinen Zweck erfüllt, aber keineswegs handlich ist:
>> <p><span class="productname"><?php echo $row_rsProducts['ProductName']; ?><br />
Die ganze Seite arbeitet nicht mit identifizierten Datensätzen, sondern ausschließlich mit einer sortierten Folge von Datensätzen, aus der anhand seiner Position ein Datensatz rausgepickt wird.
Das macht für die die Aufgabe nicht leicht, denn um wirklich _diese_ Detailseite verwenden zu können musst du das Verhalten des Algorithmus imitieren:
printf("%s?pageNum_rsProducts=%d%s", $currentPage, min($totalPages_rsProducts, $pageNum_rsProducts + 1), $queryString_rsProducts);
das erste %s und damit $currentPage hat er oben ausgewertet zur URL der Seite, Haken dran, kennen wir.
der nächste Parameter ist schon etwas schwieriger, sie so aus wie die Position des nächsten Datensatzes, sprich 0 für den ersten, 1 für den zweiten, ..., bis maximal zum $totalPages_rsProducts.
$queryString_rsProducts scheint er mir im von dir zuvor geposteten Skript initialisiert zu haben.
Wenn ich das alles mal zusammensammle und mich erinnere, dass du gesagt hast, dass beide von dir zuerst geposteten Skripte identisch sind, dann könntest du folgendes als URL probieren
printf("product_detail.php?pageNum_rsProducts=%d%s", XXX, $queryString_rsProducts);
Für den zweiten Parameter XXX musst du bei der Ausgabe deiner Liste einen Zähler beginnend bei 0 mitlaufen lassen und für jeden Link entsprechend anpassen.
Aber wie gesagt, handlich ist das ganze nicht. Hat Dreamweaver da nicht vielleicht einen eigenen Lösungsvorschlag?
MfG
Rouven
Hello,
die Navigation welche Du da gefunden hast ist eine welche im Dreamweaver automatisch generiert wird. Die klappt ja auch. Ist aber eben nur innerhalb der Detailseite wirksam. Der dreamweavereigene Lösungsvorschlag steht in meinem ersten Posting.
Ist denn diese Schreibweise so richtig?
printf("product_detail.php?pageNum_rsProducts=%d%s", XXX, $queryString_rsProducts);
Hello,
Ist denn diese Schreibweise so richtig?
für was? Zur direkten Verwendung? Nein, sie sollte dir nur eine Hilfestellung geben aus welchen Daten du deinen Link zusammensetzt. Das Ergebnis der Funktion printf ist ein String in dem Parameter ersetzt wurden. In deinem Fall wird der zweite Parameter als Ganzzahl und der dritte Parameter als String in den ersten String an den Stellen %d und %s gesetzt.
Das Ergebnis von printf, sprich den String, kannst du als URL verwenden.
Wie gesagt, das hier ist aber nur eine Vorlage, das XXX muss noch mit Leben, nämlich der angesprochenen Zählvariable gefüllt werden.
Mit Dreamweaver-eigene Lösung meinte ich, dass die sich doch ein ein Konzept überlegt haben müssen wie man auf ihre Detailseite kommt. Oder wo kommt die Detailseite her?
MfG
Rouven
Hi Rouven,
also die Zählervariable wäre dann wohl eine ID, z.B. ProductID aus meiner Tabelle, richtig?
Was der Dreamweaver anbietet ist Folgendes:
Detailseiten öffnen und die Datensatz-ID übergeben (ColdFusion, PHP)
1. Wählen Sie in der dynamischen Tabelle den Platzhalter für den Text aus, der als Hyperlink dienen soll.
2. Klicken Sie im Eigenschafteninspektor auf das Ordnersymbol unter dem Feld „Hyperlink“.
3. Klicken Sie auf „Durchsuchen“ und wählen Sie die Detailseite aus. Die Detailseite wird im Eigenschafteninspektor im Feld „Hyperlink“ angezeigt.
4. Wählen Sie in der dynamischen Tabelle auf der Masterseite den Hyperlink aus.
6. (PHP) Fügen Sie im Eigenschafteninspektor im Feld „Hyperlink“ die folgende Zeichenfolge am Ende der URL ein:
?recordID=<?php echo $row_recordsetName['fieldName']; ?>
Das Fragezeichen zeigt dem Server an, dass ein oder mehrere URL-Parameter folgen. Der Ausdruck recordID ist der Name des URL-Parameters. (Sie können einen beliebigen Namen wählen.) Schreiben Sie sich den Namen des URL-Parameters auf. Sie benötigen ihn später für die Detailseite.
Der Ausdruck nach dem Gleichheitszeichen ist der Wert des Parameters. In diesem Fall wird der Wert durch einen PHP-Ausdruck generiert, der eine Datensatz-ID aus der Datensatzgruppe zurückgibt. Für jede Zeile in der dynamischen Tabelle wird eine andere ID generiert. Ersetzen Sie im PHP-Ausdruck recordsetName durch den Namen Ihrer Datensatzgruppe und fieldName durch den Namen des Felds in der Datensatzgruppe, die den jeweiligen Datensatz eindeutig kennzeichnet. Normalerweise besteht das Feld aus einer Datensatz-ID. Im folgenden Beispiel besteht das Feld aus eindeutigen Standortcodes.
locationDetail.php?recordID=<?php echo $row_rsLocations['CODE']; ?>
Wenn die Seite ausgeführt wird, werden die Werte des Datensatzgruppenfelds „CODE“ in die entsprechenden Zeilen der dynamischen Tabelle eingefügt. Wenn zum Beispiel ein Mietobjekt im australischen Canberra den Code „CBR“ besitzt, wird in der dynamischen Tabelle in der Zeile „Canberra“ die folgende URL verwendet:
locationDetail.php?recordID=CBR
Das klappt aber nicht.
Grüße
Ronald
Hello,
also die Zählervariable wäre dann wohl eine ID, z.B. ProductID aus meiner Tabelle, richtig?
na ja, da bin ich initial von ausgegangen, aber sämtlicher Code den ich bisher zu Gesicht bekommen habe arbeitet _nicht_ mir IDs sondern ausschließlich mit der Position des Datensatzes. Du müsstest also selber zählen...
Der Ausdruck [...] Datensatz-ID aus der Datensatzgruppe zurückgibt. Für jede Zeile in der dynamischen Tabelle wird eine andere ID generiert. Ersetzen Sie im PHP-Ausdruck recordsetName durch den Namen Ihrer Datensatzgruppe und fieldName durch den Namen des Felds in der Datensatzgruppe, die den jeweiligen Datensatz eindeutig kennzeichnet.
Das klappt aber nicht.
das hier lässt darauf schließen, dass die Leute sich durchaus Gedanken gemacht haben, wie man mit Datensatzgruppen und IDs Informationen austauscht. Wo kommt denn deine Detailanzeigeseite her? Vielleicht hat Dreamweaver da noch Optionen? Vielleicht kann man ihr doch diesen Namen mitteilen, anhand dessen die Daten identifiziert werden?
MfG
Rouven
Die Detail-Seite habe ich erstellt. Alles was Du an PHP findest ist jedoch komplett vom Dreamweaver erstellt worden.
Du hast halt ein paar Schaltfläche wie z.B. "Datensatzgruppen-Navigationsleiste", die dann automatisch eingefügt wird und automatisch zählt.
Arbeitet man im DW mit ASP so gibt es eine automatische Funktion, einen bestimmte Datensatz aufzurufen.
Bei PHP leider nicht. Zumindest kenne ich die nicht. Habe aber alles abgesucht und bin nur in der Hilfe fündig geworden, die Du ja bereits gelesen hast.
Gruß
Ronald
Hallo Rouven,
habe es doch noch gefunden. Der DW bietet eine automatische Funktion für Master/Detailseiten. Dann funktioniert auch der beschriebene Link in der Hilfe.
Vielen Dank für Deine Zeit und Hilfe.
Gruß
Ronald
Und um es zu komplettieren, der Quellcode aus dem "Tabellen-Dokument"
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO 8859-1" />
<title>Ronaldo's Cafe</title>
<!--[if IE 5]>
<style type="text/css">
/* Fügen Sie CSS-Box-Modell-Korrekturen für IE 5* in diesen bedingten Kommentar ein. */
.thrColAbsHdr #sidebar1 { width: 180px; }
.thrColAbsHdr #sidebar2 { width: 190px; }
</style>
<![endif]-->
<link href="ronaldos_coffee.css" rel="stylesheet" type="text/css" />
</head>
<body class="thrColAbsHdr">
<div id="container">
<div id="header">
<img src="images/header.jpg" alt="" width="770" height="87" />
<!-- end #header --></div>
<div id="sidebar1">
<img src="images/nav_franchise.gif" width="170" height="30"><br>
<ul>
<li><a href="news_detail.php">News</a></li>
<li><a href="product_search.php">Artikelsuche</a></li>
<li><a href="suppliers_search.php">Lieferanten</a></li>
<li><a href="product_add.php">Artikel hinzufügen</a></li>
<li><a href="suppliers_add.php">Lieferant hinzufügen</a></li>
<li><a href="franchise_add.php">Franchise hinzufügen</a></li>
<li><a href="news_add.php">Freigabe hinzufügen</a></li>
<li><a href="franchise_search.php">Franchise-Suche</a></li>
</ul>
<img src="images/nav_blackbox.gif" width="170" height="15">
<!-- end #sidebar1 --></div>
<div id="mainContent"><img src="images/subtitle_supliessearch.gif" width="172" height="57" alt="Betands Suche" />
Datensätze <?php echo ($startRow_rsProducts + 1) ?> bis <?php echo min($startRow_rsProducts + $maxRows_rsProducts, $totalRows_rsProducts) ?> von <?php echo $totalRows_rsProducts ?> <?php do { ?>
<table width="90%" border="0" cellpadding="0" cellspacing="0" id="prod_name">
<tr>
<td valign="top" align="left" width="155" class="articletitle">Produkt Name:</td>
<td valign="top" align="left" width="148" class="productname"><a href="product_detail.php?SKU=<?php echo $row_rsProducts['SKU']; ?>"><?php echo $row_rsProducts['ProductName']; ?></a></td>
<td valign="top" align="center" width="71" rowspan="8"><img src="<?php echo $row_rsProducts['SmallImage']; ?>" alt="<?php echo $row_rsProducts['ProductName']; ?>" /></td>
</tr>
<tr>
<td valign="top" align="left" width="155" class="normaltext">Artikelnummer:</td>
<td valign="top" align="left" width="148" class="normaltext"><?php echo $row_rsProducts['SKU']; ?></td>
</tr>
<tr>
<td valign="top" align="left" width="155" class="normaltext">Bestellmenge:</td>
<td valign="top" align="left" width="148" class="normaltext"><?php echo $row_rsProducts['QuantityPerUnit']; ?></td>
</tr>
<tr>
<td valign="top" align="left" width="155" class="normaltext">Anzahl im Lager:</td>
<td valign="top" align="left" width="148" class="normaltext"><?php echo $row_rsProducts['UnitsInStock']; ?></td>
</tr>
<tr>
<td valign="top" align="left" width="155" class="normaltext">Voraussichtliche Lieferzeit:</td>
<td valign="top" align="left" width="148" class="normaltext"><?php echo $row_rsProducts['DeliveryTime']; ?></td>
</tr>
<tr>
<td valign="top" align="left" width="155" class="normaltext">Grosshandelspreis:</td>
<td valign="top" align="left" width="148" class="normaltext"><?php echo $row_rsProducts['WholesalePrice']; ?></td>
</tr>
<tr>
<td valign="top" align="left" width="155" class="normaltext">Unverbindliche Preisempfehlung:</td>
<td valign="top" align="left" width="148" class="normaltext"><?php echo $row_rsProducts['UnitPrice']; ?></td>
</tr>
<tr>
<td valign="top" align="left" class="normaltext" width="155">Lieferant:<br />
</td>
<td valign="top" align="left" class="normaltext" width="148"><?php echo $row_rsProducts['s_firma']; ?></td>
</tr>
</table>
<?php } while ($row_rsProducts = mysql_fetch_assoc($rsProducts)); ?>
<a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, 0, $queryString_rsProducts); ?>"></a><a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, 0, $queryString_rsProducts); ?>">
<?php if ($pageNum_rsProducts > 0) { // Show if not first page ?>
<img src="images/but_first.gif" alt="first" width="70" height="23" border="0" />
<?php } // Show if not first page ?>
</a><a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, min($totalPages_rsProducts, $pageNum_rsProducts + 1), $queryString_rsProducts); ?>">
<?php if ($pageNum_rsProducts < $totalPages_rsProducts) { // Show if not last page ?>
<img src="images/but_next.gif" alt="next" width="70" height="23" border="0" />
<?php } // Show if not last page ?>
</a>
<?php if ($pageNum_rsProducts > 0) { // Show if not first page ?>
<a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, max(0, $pageNum_rsProducts - 1), $queryString_rsProducts); ?>"><img src="images/but_prev.gif" alt="previous" width="70" height="23" border="0" /></a>
<?php } // Show if not first page ?>
<!-- end #mainContent -->
<?php if ($pageNum_rsProducts < $totalPages_rsProducts) { // Show if not last page ?>
<a href="<?php printf("%s?pageNum_rsProducts=%d%s", $currentPage, $totalPages_rsProducts, $queryString_rsProducts); ?>"><img src="images/but_last.gif" alt="last" width="70" height="23" border="0" /></a>
<?php } // Show if not last page ?>
</div>
<div id="footer">
<p><img src="images/footer_logo.jpg" width="142" height="25" align="absmiddle" /> - World's Finest Coffee's - © 2009</p>
<!-- end #footer --></div>
<!-- end #container --></div>
</body>
</html>
<?php
mysql_free_result($rsProducts);
?>