Datensatz Navigation von Übersichtsseite an Detailseite übergeben

montymon

Grünschnabel
Ich habe eine Abfrage erstellt, die 6 Datensätze enthält.
Jeder datensatz in der vorschau ist mit einem

Code:
<a herf=detail.php?info1=row_abfrage[extra1]&midpic=$row_abfrage[midpic]...>

versehen.

Jetzt möchte ich in der Detailansicht in der nur 1 Datensatz angezeigt wird vorwärts und rückwärts navigieren.

Hier die MySql abfrage für den Datensatz 1-6.
PHP:
<?php require_once('../../Connections/weich.php'); ?>
<?php
$currentPage = $HTTP_SERVER_VARS["PHP_SELF"];

$maxRows_abfrage = 6;
$pageNum_abfrage = 0;
if (isset($HTTP_GET_VARS['pageNum_abfrage'])) {
  $pageNum_abfrage = $HTTP_GET_VARS['pageNum_abfrage'];
}
$startRow_abfrage = $pageNum_abfrage * $maxRows_abfrage;

mysql_select_db($database_weich, $weich);
$query_abfrage = "SELECT * FROM Produkte_Lean WHERE extra1 = 'Schuhe' ORDER BY id DESC";
$query_limit_abfrage = sprintf("%s LIMIT %d, %d", $query_abfrage, $startRow_abfrage, $maxRows_abfrage);
$abfrage = mysql_query($query_limit_abfrage, $weich) or die(mysql_error());
$row_abfrage = mysql_fetch_assoc($abfrage);

if (isset($HTTP_GET_VARS['totalRows_abfrage'])) {
  $totalRows_abfrage = $HTTP_GET_VARS['totalRows_abfrage'];
} else {
  $all_abfrage = mysql_query($query_abfrage);
  $totalRows_abfrage = mysql_num_rows($all_abfrage);
}
$totalPages_abfrage = ceil($totalRows_abfrage/$maxRows_abfrage)-1;

$queryString_abfrage = "";
if (!empty($HTTP_SERVER_VARS['QUERY_STRING'])) {
  $params = explode("&", $HTTP_SERVER_VARS['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_abfrage") == false && 
        stristr($param, "totalRows_abfrage") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_abfrage = "&" . implode("&", $newParams);
  }
}
$queryString_abfrage = sprintf("&totalRows_abfrage=%d%s", $totalRows_abfrage, $queryString_abfrage);

?>

und hier die navigation für die Datensatz über sicht.
PHP:
<?php if ($pageNum_abfrage > 0) { // Show if not first page ?>
      <a href="<?php printf("%s?pageNum_abfrage=%d%s", $currentPage, 0, $queryString_abfrage); ?>">Erster</a>
      <?php } // Show if not first page ?>
      <?php if ($pageNum_abfrage > 0) { // Show if not first page ?>
      <a href="<?php printf("%s?pageNum_abfrage=%d%s", $currentPage, max(0, $pageNum_abfrage - 1), $queryString_abfrage); ?>">Zur&uuml;ck</a>
      <?php } // Show if not first page ?>
<?php if ($pageNum_abfrage < $totalPages_abfrage) { // Show if not last page ?>
      <a href="<?php printf("%s?pageNum_abfrage=%d%s", $currentPage, min($totalPages_abfrage, $pageNum_abfrage + 1), $queryString_abfrage); ?>">Vor</a>
      <?php } // Show if not last page ?>
      <?php if ($pageNum_abfrage < $totalPages_abfrage) { // Show if not last page ?>
      <a href="<?php printf("%s?pageNum_abfrage=%d%s", $currentPage, $totalPages_abfrage, $queryString_abfrage); ?>">Letzter</a>
      <?php } // Show if not last page ?>

Was muss ich wie alles an die Detail Seite übergeben?

lg monty
 
Hi

ist mit Dreamweaver gemacht, oder?

Du wirst auf der Detailseite den Wiederholungspart auf 1 Datensatz abändern müssen.

Dann auf der Übersichtsseite einen Zähler mitlaufen lassen und den Link wie im Beispiel erstellen.

bsp.

$num = 1;
//Schleife
// URL ..detail.php?pageNum_abfrage=$num;
$num++;
// Schleifenende
 
Zuletzt bearbeitet:
Hallo Luzie,
jep ist mit dreamweaver gemacht ... das recht sich mal wieder ... :-(

Probiere das mal aus ... bis hier hin danke.

lg Monty
 
hmmmm ....

mal sehen ob ich das hinbekomme,
anbei das ganze Konstruck um den Link ;-)

PHP:
<?php
	$verzeichnis= "http://www.xyz.de/Lean/Bilder/thumb/";
	$i=0;
	 do { 
			$i ++;
			echo "<td width=200 height=200  align=left valign=top>
			<a href=detail_work_version_01.php?extra1=$row_abfrage[extra1]&midpic=$row_abfrage[midpic]&produktdetail=$Aproduktdetail&uebersrift=$Auebersrift&streichpreis=$Astreichpreis&preis=$Apreis&groessen=$Agroessen&farbe1=$row_abfrage[farbe1]&farbe2=$row_abfrage[farbe2]>
			<img border=1 bordercolor=#336633 src=" . $verzeichnis . $row_abfrage['tumb'] . "></a>
			<br><font color=#336633 face=Verdana, Arial, Helvetica, sans-serif size=1 ><strong>$row_abfrage[uebersrift]</strong><td></td>";
			  if($i == 3){
				echo "<td></tr>
				<tr><td></td><td></td></tr>";
			}
	} while ($row_abfrage = mysql_fetch_assoc($abfrage)); 
?>
 
Hi

nun bleibt die Frage offen, warum Du alle Werte per URL mit auf die Detailseite schicken willst ?

Stell Dir vor, Du hast 6 Datensätze auf der Übersicht, alle sortiert nach ID (order by id) oder wie Dein ID-Feld heißt. Das gleiche Statement generierst Du auch auf der Übersicht. (Ohne Filter!).

Es werden jetzt also beide Seiten in der gleichen Reihenfolge dargestellt. Einzigster Unterschied, dass Du auf der Detailsseite im Region Repeat Bereich auf 1 Datensatz setzt und die Blätterlinks kontruierst.

Es wird jetzt nicht die id übergeben sondern die Numerierung, die über den Zähler generiert wird. 1,2,3,4,5,6. Du solltest allerdings die Werte wie width=, height=, a href= in Anführungszeichen setzen. Das ist sauberer.

PHP:
<?php
    $verzeichnis= "http://www.xyz.de/Lean/Bilder/thumb/";
    $i=0;
     do {
            $i ++;
            echo "<td width=200 height=200  align=left valign=top>
            <a href=detail_work_version_01.php?pageNum_abfrage=$i>
            <img border=1 bordercolor=#336633 src=" . $verzeichnis . $row_abfrage['tumb'] . "></a>
            <br><font color=#336633 face=Verdana, Arial, Helvetica, sans-serif size=1 ><strong>$row_abfrage[uebersrift]</strong><td></td>";
              if($i == 3){
                echo "<td></tr>
                <tr><td></td><td></td></tr>";
            }
    } while ($row_abfrage = mysql_fetch_assoc($abfrage));
?>
 
Erstmal danke für den Ansatz.

Ich habe es jetzt wie folgt gelößt:

Ich übergebe nur noch die ID
Code:
<a href="Untitled-4.php?id=<?php echo $row_Recordset1['id']; ?>">

die Empfämgerseite
sieht dann so aus:

PHP:
<?php
$currentPage = $HTTP_SERVER_VARS["PHP_SELF"];

$maxRows_Recordset1 = 1;
$pageNum_Recordset1 = 0;
if (isset($HTTP_GET_VARS['pageNum_Recordset1'])) {
  $pageNum_Recordset1 = $HTTP_GET_VARS['pageNum_Recordset1'];
}
$startRow_Recordset1 = $pageNum_Recordset1 * $maxRows_Recordset1;

$colname_Recordset1 = "1";
if (isset($HTTP_GET_VARS['id'])) {
  $colname_Recordset1 = (get_magic_quotes_gpc()) ? $HTTP_GET_VARS['id'] : addslashes($HTTP_GET_VARS['id']);
}
mysql_select_db($database_weich, $weich);
$query_Recordset1 = sprintf("SELECT * FROM Produkte_Lean WHERE id = %s", $colname_Recordset1);
$query_limit_Recordset1 = sprintf("%s LIMIT %d, %d", $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
$Recordset1 = mysql_query($query_limit_Recordset1, $weich) or die(mysql_error());
$row_Recordset1 = mysql_fetch_assoc($Recordset1);

if (isset($HTTP_GET_VARS['totalRows_Recordset1'])) {
  $totalRows_Recordset1 = $HTTP_GET_VARS['totalRows_Recordset1'];
} else {
  $all_Recordset1 = mysql_query($query_Recordset1);
  $totalRows_Recordset1 = mysql_num_rows($all_Recordset1);
}
$totalPages_Recordset1 = ceil($totalRows_Recordset1/$maxRows_Recordset1)-1;

$queryString_Recordset1 = "";
if (!empty($HTTP_SERVER_VARS['QUERY_STRING'])) {
  $params = explode("&", $HTTP_SERVER_VARS['QUERY_STRING']);
  $newParams = array();
  foreach ($params as $param) {
    if (stristr($param, "pageNum_Recordset1") == false && 
        stristr($param, "totalRows_Recordset1") == false) {
      array_push($newParams, $param);
    }
  }
  if (count($newParams) != 0) {
    $queryString_Recordset1 = "&" . implode("&", $newParams);
  }
}
$queryString_Recordset1 = sprintf("&totalRows_Recordset1=%d%s", $totalRows_Recordset1, $queryString_Recordset1);
?>

Da ich jetzt aber nur einen Datensatz in der Seite habe.
hinkt es bei mir gerade daran den wert ['id'] zu verändern +/- 1 für die Quernavigation ... vor und zurück.

lg Monty
 
Hi

wie ich bereits oben beschrieben habe, Du darfst das Statement nicht filtern!. Der einzelne Datensätz wird über den fortlaufenden Zähler aufgerufen, genau wie bei den Blätterlinks auch.
 
Zurück