• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> 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 ;))