Blätterfunktion - kleines Problem!

...so, gebastelt und funktioniert:

PHP:
$res = mysql_query("SELECT * FROM `snapmax_angebote` WHERE `hersteller` LIKE '".mysql_real_escape_string($_GET['hersteller'])."%' AND `festplatte` ".formatExpression($_GET['festplatte'])." AND `bildschirm` ".formatExpression($_GET['bildschirm'])." AND `prozessor` LIKE '".mysql_real_escape_string($_GET['prozessor'])."%' AND `grafikkarte` LIKE '".mysql_real_escape_string($_GET['grafikkarte'])."%' AND `speicher` ".formatExpression($_GET['speicher'])." AND `takt` ".formatExpression($_GET['takt'])." AND `ps22` ".formatExpression($_GET['ps22'])." AND `seller`LIKE '".mysql_real_escape_string($_GET['seller'])."%'");
$menge = mysql_num_rows($res);

und:

PHP:
//Errechnen wieviele Seiten es geben wird
$wieviel_seiten = $menge / $limit;
 
Neuer Anstatz:
PHP:
$page = ( isset($_GET['seite']) && abs(intval($_GET['seite'])) == $_GET['seite'] && $_GET['seite'] > 0 )
	? intval($_GET['seite'])
	: 1;
$limit = ( isset($_GET['maxtreffer']) && abs(intval($_GET['maxtreffer'])) == $_GET['maxtreffer'] )
	? intval($_GET['maxtreffer'])
	: 5;
$offset = ($page - 1) * $limit;


$query = '
	SELECT
	        *
	  FROM
	        `snapmax_angebote`
	  WHERE
	        1
	';
$whereContition = '';
if( isset($_GET['hersteller']) ) {
	$whereCondition .= ' AND `hersteller` LIKE "'.mysql_real_escape_string($_GET['hersteller']).'%"';
}
if( isset($_GET['festplatte']) ) {
	$whereCondition .= ' AND `festplatte` '.formatExpression($_GET['festplatte']);
}
if( isset($_GET['bildschirm']) ) {
	$whereCondition .= ' AND `bildschirm` '.formatExpression($_GET['bildschirm']);
}
if( isset($_GET['prozessor']) ) {
	$whereCondition .= ' AND `prozessor` LIKE "'.mysql_real_escape_string($_GET['prozessor']).'%"';
}
if( isset($_GET['grafikkarte']) ) {
	$whereCondition .= ' AND `grafikkarte` LIKE "'.mysql_real_escape_string($_GET['grafikkarte']).'%"';
}
if( isset($_GET['speicher']) ) {
	$whereCondition .= ' AND `speicher` '.formatExpression($_GET['speicher']);
}
if( isset($_GET['takt']) ) {
	$whereCondition .= ' AND `takt` '.formatExpression($_GET['takt']);
}
if( isset($_GET['ps22']) ) {
	$whereCondition .= ' AND `ps22` '.formatExpression($_GET['ps22']);
}
if( isset($_GET['seller']) ) {
	$whereCondition .= ' AND `seller` LIKE "'.mysql_real_escape_string($_GET['seller']).'%"';
}
$query .= $whereCondition . ' ORDER BY `'.mysql_real_escape_string($orderby).'` LIMIT '.$offset.', '.$limit;
$result = mysql_query($query)
	or die(mysql_error());

$query = '
	SELECT
	        COUNT(*) AS `count`
	  FROM
	        `snapmax_angebote`
	  WHERE
	        1
	' . $whereCondition;
$result = mysql_query($query)
	or die(mysql_error());
$wieviel_seiten = ceil(mysql_result($result, 0) / $limit);

echo $wieviel_seiten;
 
...das funktioniert alles wunderbar, nur werden immernoch die ersten Ergebnisse übernommen und nicht die nächsten 5...

ich denke, dass mein problem hier liegt: ( vermutet ein Anfänger )

PHP:
//Aus dieser Seite ist der User nicht, also einen Link ausgeben
   else
      {
      echo "  <a href=\"?hersteller=$hersteller&festplatte=$festplatte&bildschirm=$bildschirm&grafikkarte=$grafikkarte&$prozessor=$prozessor&speicher=$speicher&takt=$takt&ps22=$ps22&seller=$seller&page=$b\">$b</a> ";
      }

...brauchst dir aber nicht arbeit machen, hast schon genug für mich gemacht! Danke dafür!!
 
Vielleicht solltest du die ausgewählten Werte besser in einer PHP-Sitzung speichern. Das würde dir zumindest die ständige Weitergabe der ausgewählten Werte erleichtern.
 
...o.k., aber wenn ich das richtig verstehe ändert es ja nichts an dem eigentlich Problem oder bin ich jetzt durch den Wind!?
 
...aha, habe etwas entdeckt. Der Link zur nächsten Seite sieht so aus:

...hersteller=Acer&festplatte=lt;200&bildschirm=lte;25&grafikkarte=_&_=_&speicher=gt;0&takt=lt;5.0&ps22=lte;4000&seller=_&page=2

Im Fett-markierten Bereich wird der Prozessor Wert nicht übergeben...


Na toll, da war ein Fehler im Wert. Hat aber nix geändert
 
Zuletzt bearbeitet:
Zurück