• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

foreach-Schleife limitieren

  • Ersteller Ersteller fireoffice
  • Erstellt am Erstellt am
F

fireoffice

Guest
Guten Abend,

ich habe eine foreach-Schleife, die bestimmte Werte aus einer Datenbank ausgibt. Diese Werte werden in unterschiedlichen HTML-Tabellen ausgegeben, sodass in der HTML-Tabelle A z.B. 3 dieser Einträge und in der HTML-Tabelle B z.B. 5 dieser Einträge stehen. Nun möchte ich aber pro HTML-Tabelle nur 2 Einträge anzeigen, da über den Button "Mehr" die restlichen Einträge aufgerufen werden können.

Deshalb die Frage, ob sich das mithilfe der foreach-Schleife lösen lässt oder ob es hier einer anderen Herangehensweise bedarf?

Danke für die Hilfe und viele Grüße!
 
Ich mache zwar nicht viel mit PHP, aber mein Ansatz wäre, innerhalb der foreach bei index == 1 einen break aufzurufen und über den "Mehr" Button einen AJAX Call zu starten, der alle Werte des Queries lädt.

Vielleicht fällt jemandem ja noch ein besserer Weg ein.
 
Wie wäre es, wenn du dir aus deiner Datenbank folgende Ergebnisse holst.

PHP:
$iEintrag = 0;
$iAnzahl = 2;
$iIndex = $iEintrag * $iAnzahl;
$sQuery = "SELECT id, titel, name, datum FROM berichte WHERE ... LIMIT " . $iIndex . ", " . $iAnzahl;

Somit zeigst du einfach immer alle an die du zurück bekommst. Nun musst du aber noch wissen, ob es in der Datenbank noch mehr Einträge gibt.
PHP:
$sQuery = "SELECT COUNT(*) FROM berichte WHERE ...";
/*ausführen*/
$iAnzahlEinträge = ...;
if ($iAnzahlEinträge > ($iIndex + $iAnzahl)) {
    // nächste seite ding einblenden oder was auch immer du hier machen willst.
    // geht natürlich genau so gut für weniger seiten und so weiter... musst nur ein wenig rechnen
}
 
Im Allgemeinen ist für eine Schleife mit "gewolltem Ende", also einer Abbruchbedingung, eine while-Schleife besser geeignet, als foreach. In deinem Fall würde ich aber auch zur der mit "limit" begrenzten MySQL-Query aus dem Post von Slibbo greifen. Ggf. noch ein "order" hinten dran, damit du immer die beiden aktuellste Einträge erhälst. Das ist am saubersten.
 
Zurück
Oben