Blätterfunktionbei zwei Abfragen

milea

Mitglied
Hallo!
Möchte auf meiner seite eine Blätterfunktion einbauen und ab 10 ergebnissen diese auf mehrere seiten verteilen. Allerdings weiß ich nicht, wie ich das anstellen soll.Bei einer Abfrage ist es kein Problem. Nun müssen aber die ergebnisse von 2 abfragen beachtet werden. Also wenn nun z.b Abfrage 1neun Ergebnisse hervorbringt und die Abfrage 2 sechs Ergebnisse, dann würden auf der Seite ingesamt 15 Ergebnisse aufgelistet. Es sollen aber nur insgesamt 10 sein. Also müßten die übrigen 5 auf einer weitern seite dargestellt werden. Bin nun soweit, das die richtige Anzahl von Seiten angezeigt werden, allerdings kommt immer die selbe Ausgabe (also die gesamten rgebnisse aus den 2 abfragen), egal auf welcher Seite ich mich befinde.
PHP:
<?

if(!isset($page)) $page = 1; 

$page = $page; 

$eintraege_pro_seite = 10; 

$start = $page * $eintraege_pro_seite - $eintraege_pro_seite; 

//die zwei abfragen mit for-schleife 

/ABFRAGE FÜRS AUFZEIGEN DER ARTIKELEIGENSCHAFTEN 
include("dblogon.php"); 
$sql3 = "SELECT * FROM service_ansicht WHERE nutzer_id = '".$fnutzer_id."' AND service = '".$service."'"; 
$result3 = mysql_query($sql3) OR die(mysql_error()."  ".mysql_errno()); 
$num3 = mysql_num_rows($result3); 
if($num3 == 0) echo"Es gibt keine Einträge für diese Firma"; 

for($i=0; $i<$num3; $i++) 
{ 
$id = mysql_result($result3,$i,"id"); 
$mwst = mysql_result($result3,$i,"mwst"); 
$artikelnr = mysql_result($result3,$i,"artikelnr"); 
$bild = mysql_result($result3,$i, "bild"); 
$artikelbez = mysql_result($result3,$i, "artikelbez"); 
$beschreibung = mysql_result($result3,$i, "beschreibung"); 
$preis = mysql_result($result3,$i, "preis"); 
$verfuegbarkeit = mysql_result($result3,$i, "verfuegbarkeit"); 
$liefergebiet = mysql_result($result3,$i, "liefergebiet"); 
$firmen_id = mysql_result($result3,$i, "nutzer_id"); 


echo '<table cellspacing="0" cellpadding="0" height="20" border="0"><tr><td width="40" height="30"> '; 


...Ausgabe 

echo '</tr></table>'; 
} 
//Weitere Artikel der firma, die nicht zum Service gehören 
echo '<table align="center"><tr><td> </td></tr></table>'; 

$sql_4 = "SELECT * FROM service_ansicht WHERE nutzer_id ='".$fnutzer_id."' AND service != '".$service."'"; 
$result_sql4 = mysql_query($sql_4) OR die(mysql_error()."  ".mysql_errno()); 
$num4 = mysql_num_rows($result_sql4); 
if($num4 == 0) echo"Es gibt keine weiteren Einträge dieser Firma"; 


for($i=0; $i<$num4; $i++) 
{ 
$id = mysql_result($result_sql4,$i,"id"); 
$mwst = mysql_result($result_sql4,$i,"mwst"); 
$artikelnr = mysql_result($result_sql4,$i,"artikelnr"); 
$bild = mysql_result($result_sql4,$i, "bild"); 
$artikelbez = mysql_result($result_sql4,$i, "artikelbez"); 
$beschreibung = mysql_result($result_sql4,$i, "beschreibung"); 
$preis = mysql_result($result_sql4,$i, "preis"); 
$verfuegbarkeit = mysql_result($result_sql4,$i, "verfuegbarkeit"); 
$liefergebiet = mysql_result($result_sql4,$i, "liefergebiet"); 
$firmen_id = mysql_result($result_sql4,$i, "nutzer_id"); 


#echo $fnutzer_id; 
echo '<table cellspacing="0" cellpadding="0" height="30" border="0"><tr><td width="40" height="30"> '; 


...Ausgabe 

echo '</td></tr></table>'; 
} 

//Blätterfunktion 
//abfrage viel einträge insgesamt 

$sql_prüfen = mysql_query("SELECT id FROM service_ansicht WHERE nutzer_id = '".$fnutzer_id."'"); 
   $menge2 = mysql_num_rows($sql_prüfen); 

   $wieviel_seiten = $menge2 / $eintraege_pro_seite; 

echo '<div align=center>'; 
         echo '<b>Seite: </b>'; 
         //Ausgabe der Links zu den Seiten 
   for($a=0; $a < $wieviel_seiten; $a++) 
   { 
   $b = $a + 1; 

   //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben 
   if($page == $b) 
   { 
   echo ' '.$b; 
   } 

   //Aus dieser Seite ist der User nicht, also einen Link ausgeben 
   else 
   { 
   echo '<a href="index.php?seite=lieferung_service_anzeigen.php&fnutzer_id='.$fnutzer_id.'&service='.$service.'&page='.$b.'"> '.$b.'</a>'; 
   } 

   } 
   echo '</div><br>'; 
?>
 
jo, das hab ich schon durchgeblättert, aber ich denke bei mir hängts daran, das ich 2 unterschiedliche abfragen habe, deren ergebnisse aber gemainsam auf einer Seite dargestellt werden. Nu weiß ich überhaupt nicht ob ich da nicht noch was beachten muß :confused:
 
Wenn du den User entscheiden lassen willst, wieviel ERgebnisse pro Seite anzuzeigen sind, kannst du das vorgeben mit einem <input text> oder mit einem <select...> Dieser Wert wird dann für die Ausgabe übernommen.
 
Ne, der User sollte das lieber nicht entscheiden Hab eigentlich gedacht ich häts raus, aber ich versteh nicht, warum bei mir immer auf jeder seite das gleiche steht. muß ich vielleicht was an meinen abfragen ändern?
 
hm, hab hinter sql3 und 4sql_4 "LIMIT $start,$eintraege_pro_seite" vergessen. Nun kommt zwar noch immer die richtige anzahl an seiten, aber es werden noch immer alle ergebnisse von beiden abfragen dargestellt und wenn ich auf eine seite weiter drücke kommt
"Es gibt keine Einträge für diese Firma
Es gibt keine weiteren Einträge dieser Firma" was ja klar ist, den alle ergebnisse wurden ja schon auf der ersten seite aufgezeigt. Aber warum wird
$eintraege_pro_seite = 10; nicht eingehalten?
 
du musst dein sql_query Statement anpassen. Das geht über Limit.

Ist Start = 0 dann startet Limit bei 0, ist start höher, dann ist der höhere Wert ebenfalls start.
Das könnte so aussehen:
$db = mysql_query("SELECT * FROM tabelle WHERE bla = 'bla' ORDER BY id LIMIT $_GET['start'], $maximale ausgabe");

Start bzgl. Seitenzähler auch entsprechend gefüllt.
 
Zurück