Wie? Inhalte aus db in Array speichern + Blätterfunktion dazu basteln?

Björn

Mitglied
hi forum,

ich möchte gerne für mein Portfolio zwei Links einbauen, mit denen man innerhalb eines Bereiches immer eine Seite weiter oder zurück spingen kann.

Bis jetzt habe ich es so gemacht dass ich nur eine Seite (display.php) habe. Auf der wird dann je nach url (zb. display.php&Section=Illustration&Id=17) die mysql Datenbank abgefragt und die Inhalte Ausgegeben.

Nun hatte ich mir das jetzt so vorgestellt, das man sich über "SELECT Id FROM db_folio WHERE Section = 'Illustration'" alle Inhalte zu Illustration ausgeben lässt, diese Id's in einem Array speichert und sich mittels eines Zählers vorwärts und zückwärts durch diese Id's blättern kann.

Ich bin kein Programmierer, hab es aber irgendwie geschafft mir für mein Portfolio mit php und mysql was zusammenzubasteln. Alles klappt gut! Bei dem oben genannten Problem weis ich aber nicht wie ich es in die tat umsetzen muss.

Weis jemand Rat?
Björn

was ich bisher hab sieht ungefähr so aus:

PHP:
//Wenn es keine Id gibt, bin ich noch auf einer Übersichtsseite (zB. Illustration)
// und es wird nur eine Liste als Übersicht mit allen Projekten der gewählten Kategorie ausgegeben.
	$Id=$_GET['Id'];
	if(!isset($Id)){
	$anfrage="SELECT * FROM db_folio WHERE Section = '$Section' AND Date > '2003-12-31' ORDER BY Date DESC";
	}else{

// Wenn es eine Id in der URL gibt, weiss ich das ich auf Projektebene
// angelangt bin und es in der Hirarchie nicht tiefer geht.
// Hier wird dann die komplette Beschreibung ausgegeben.
	$anfrage="SELECT * FROM db_folio WHERE Id = '$Id'";
	}
	
	$ergebnis=mysql_query($anfrage)
    or die ("<b>Fehler bei der Datenbankanfrage</b>");
	$anz=mysql_num_rows($ergebnis);

	//Eintraege
	$spaltenanzahl=mysql_num_fields($ergebnis);
	while ($zeile=mysql_fetch_row($ergebnis)) {
	
    // Section
    print ("zeile[1]");
usw...
 
hmm, das tutorial hat ich mir auch vorher angesehen.
hat mir nicht geholfen weil ich es nicht mir meiner art mir url's umzugehen
geklappt hat.
ich bin auch noch nicht soooo tief im thema php dass ich das hinbekommen
hätte. hab auch ewig dran rumgebogen aber am ende ging es einfach nicht.
:confused:
 
Re: Wie? ... meine eigene lösung

nur der vollständigkeit halber möchte ich hier nun die lösung
zeigen die ich selbst auf meine frage erarbeitet hab.
das tutrorial konnte ich wie schon erwähnt nicht brauchen.
trozdem danke!
;-)

Code:
<?php


$Section=$_GET['Section'];
$Id=$_GET['Id'];

$query = "SELECT Id FROM db_folio WHERE Section = '$Section' ORDER BY Id ASC";
$result = mysql_query($query);

$projects = array();
$current_index = '';
$i = 0;

while ($project = mysql_fetch_assoc($result)) {
	$projects[] = $project;
	if ($project['Id'] == $Id) {
		$current_index = $i;
		$current_project = $project;
	}
	$i++;
}

$prev_index = $current_index - 1;
$next_index = $current_index + 1;

if (is_array($projects[$prev_index])) {
	$prev_id = $projects[$prev_index]['Id'];
	$prev_link = '<a href="' . $_SERVER['PHP_SELF'] . "?Section=$Section&Id=$prev_id" . '" class="internal">[voriges Projekt]</a>';
}
if (is_array($projects[$next_index])) {
	$next_id = $projects[$next_index]['Id'];
	$next_link = '<a href="' . $_SERVER['PHP_SELF'] . "?Section=$Section&Id=$next_id" . '" class="internal">[n&auml;chstes Projekt]</a>';
}


print ("$prev_link $next_link");

vielleicht hilft es ja mal jemand anderem...
björn
 
Zurück