Logisches Problem

bspainkf36

Erfahrenes Mitglied
Hey Leutz :)

habe ein kleines Problem, wobei ihr mir sicher helfen könnt :)

Also ich haben eine Blätterfunktion, die Tupel ausgibt. Jedoch ist die Id der Tupel nicht fortlaufen :( Wie kann ich diese Blätterfunktion umsetzen und die Serverlast möglichst klein halten ?

Gruß kon

EDIT //

hab es jetzt so gelöst:

PHP:
$result_back  = mysql_query("SELECT picture_id FROM $tbl_team_pics WHERE picture_team_id='$_GET[team_id]' ORDER by picture_id ASC LIMIT $_GET[pic_id],1");
							
								if($pic_vorhanden=mysql_num_rows($result_back)!=0)
								{
									while($row_back = mysql_fetch_object($result_back)) 
									{
										$move_back_pic=$row_back->picture_id;								
									}
								}
								else
									$move_back_pic="";

Hat vielleicht jemand einen besseren Vorschlag ? Danke
 
Zuletzt bearbeitet:
Du benötigst im Prinzip immer nur eine Schleife, die die momentane ID immer um 1 runterzählt und das solange tut bis ein Eintrag in dieser Datenbank mit der ID vorhanden ist.
Die Umsetzung sollte nicht allzu schweer sein ;)
 
Hast du wohl Recht, aber ich denke, dass das im Rahmen des Möglichen bleiben würde...

Desweiteren kenn ich mich nicht so doll mit SQL Funktionen aus, da sollte es aber bestimmt eine geben...
 
Die Select-Anweisung, die ich gepostet hab, funktionier, aber komischerweise nur mit ASC, jedoch nicht mit DESC ...

sprich mit der obigen Funktion kann ich die "Next Id" raussuchen, aber nicht die "Back Id" .... ist das ein Fehler von Php ?

Hab das Problem jetzt gelöst. Hier die Lösungsvorschlag von mir:

PHP:
function blaettern($tbl_team_pics,$team_id,$pic_id,$order,$link_out)
	{
		$result_limit_start  = mysql_query("SELECT picture_id FROM $tbl_team_pics WHERE picture_team_id='$team_id' ORDER by picture_id $order");
								
		$counter=1;
    	while($row_limit_start = mysql_fetch_object($result_limit_start)) 
    	{ 
			if($row_limit_start->picture_id==$pic_id)
				$limit_start_id=$counter;		      
										   
			$counter++;										
   		}

		$result  = mysql_query("SELECT picture_id FROM $tbl_team_pics WHERE picture_team_id='$team_id' ORDER by picture_id $order LIMIT $limit_start_id,1"); 
								
		//Wenn die nöchste Seite existiert 
		if($team_pic_id_vorhanden=mysql_num_rows($result)!=0)
		{
			while($row = mysql_fetch_object($result)) 
    		{
				$move_id="<a href=?nav=mitglieder&team_id=$team_id&pics_show=1&pic_id=$row->picture_id>$link_out</a>";  
			}
		}
		//Wenn die nöchste Seite NICHT existiert
		else
			$move_id="";
	
		return $move_id;
	}

$move_back_id = blaettern($tbl_team_pics,$_GET["team_id"],$_GET["pic_id"],"DESC","« back");
								
$move_next_id = blaettern($tbl_team_pics,$_GET["team_id"],$_GET["pic_id"],"ASC","next »");

Für alle die eine Blätterfunktion, wo die ids nicht fortlaufend nummeriert sind, basteln wollen!

gruß kon
 
Zuletzt bearbeitet:
Zurück