• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Was gibt es Schöneres als den Mai draußen in der Natur mit allen Sinnen zu genießen? Lasst uns teilhaben an Euren Erlebnissen und macht mit beim Thema des Monats Da blüht uns was! ---> Klick

MySQL-Suchergebnisse in "Gruppen" einteilen

newmacuser24

Antonowka
Registriert
27.12.05
Beiträge
355
Hallo zusammen,

Würde gerne folgendes machen:

Wenn ich an meine MySQL-Datenbank eine Suchanfrage schicke:

$sql="SELECT * FROM products WHERE ItemName = '$ItemName' AND ItemPrice ='$ItemPrice'";
$result=mysql_query($sql);
while($zeile = mysql_fetch_array($result)){
echo $zeile['ItemInfo'];}

...möchte ich, dass die Ergebnisse in "Gruppen" von je 8 Ergebnissen per echo ausgegeben werden.

Und zwar schritt für schritt:

1) User sucht
2) Die ersten 8 Ergebnisse werden ausgegeben
3) User klickt zum Beispiel auf "mehr"
4) Ergebnisse 9-16 werden ausgegeben

Ich weiss, dass es elegantere Lösungen gibt, Ergebnisse in Gruppen auf einer Website darzustellen, plane aber diese per Email zu versenden und benötige daher eine Lösung in diesem Stil.

Vielen Dank im Voraus!
 

MrNase

Champagner Reinette
Registriert
11.01.05
Beiträge
2.656
Das ist eigentlich recht einfach, da du offenbar weist was du tust gebe ich nur Stichpunkte. :)

MySQL & limit: http://dev.mysql.com/doc/refman/5.0/en/select.html (unten der Absatz fängt mit „The LIMIT clause can be used to constrain the number of rows returned by the SELECT statement.“ an)

Dann musst du die Datenbankabfrage natürlich umbauen, du brauchst ja 2 Zahlen im Limit anwenden zu können.

Zum einen musst du die Anzahl der Punkte pro Seite definieren
und
eine Variable benutzen die die aktuelle Seitenzahl enthält.

Ersteres ist: $per_page = 5;
Zweiteres so was wie: $current_page = intval($_GET['page']);


Der Aufruf erfolgt dann z.B. über index.php?page=1 oder index.php?page=2 für die zweite Seite.

Mit den 2 Variablen ($per_page und $current_page) kannst du dann deine Abfrage modifizieren (siehe ersten Link), du hast ja zum einen die Anzahl der Artikel pro Seite und dann noch die aktuelle Seitenzahl. Auf der ersten Seite sollen nur die Artikel 1 bis 5 angezeigt werden, auf der zweiten die Artikel 6 bis 10 uws.


(Und wenn du richtig faul bist, unter „PHP pagination“ dürfte es über Google massig Beispiele geben ;))