Hallo,
sorry ich muss nochmals etwas fragen. Auf meiner Seite werden gut 200 Einträge ausgeben, einfach viel zu viel für eine Übersicht (vor allem wenn das Internet mal wieder etwas langsamer ist). Deshalb habe ich mich dazu entschlossen eine Pagination einzubauen. Außerhalb einer Funktion funktioniert diese auch, innerhalb einer Funktion verstehe ich nicht so recht, wie ich ein Daten übergeben kann / muss. Ich beschäftige mich erst seit ein paar Wochen mit dem Thema Funktionen. Vielleicht könnt ihr mir hier nochmals weiterhelfen.
Meine Funktion sieht derzeit so aus
function kundengruppen_test($mysqli) {
define ('LIMIT', 15);
$sql = "SELECT COUNT(*) AS `amount` FROM kunden_kategorie";
$res = $mysqli->prepare($sql);
$res->execute();
$res->bind_result($amount);
$res->fetch();
$res->close();
$offset=0;
if (isset($_GET['page']) && $_GET['page'] > 1 ) {
$offset = (intval($_GET['page']) - 1 ) * LIMIT;
}
$pages = ceil($amount/LIMIT);
$stmt = $mysqli->prepare('SELECT `wkk_id`, `wkk_titel`, `wkk_status` FROM kunden_kategorie LIMIT ' . LIMIT . ' OFFSET ' . $offset);
$stmt->execute();
$stmt->bind_result($wkk_id, $wkk_titel, $wkk_status);
$stmt->store_result();
if($stmt->num_rows() > 0) {
while ($stmt->fetch()){
$kundengruppen_test[] = array(
'wkk_id' => $wkk_id,
'wkk_titel' => $wkk_titel,
'wkk_status' => $wkk_status
);
}
return $kundengruppen_test;
}
}
Alles anzeigen
Hier kommt meine Ausgabe (bis hierhin geht noch alles)
<?php
$kundengruppen_test = kundengruppen_test($mysqli);
if($kundengruppen_test > 0) {
foreach($kundengruppen_test as $array){
echo htmlspecialchars($array['wkk_titel']) ."<br>";
}
?>
Alles anzeigen
Jetzt kommen wir zu diesem Punkt der Probleme macht
if ($amount > LIMIT) {
echo "<div class="pagination">";
for($i=1;$i<=$pages;$i++)
{
$active = "";
if ($_SERVER["QUERY_STRING"] == "page=".$i): $active = "active"; endif;
echo '<a href="index?page='.$i.'" class="page '.$active.'">'.$i.'</a>';
}
echo "</div>";
}
Alles anzeigen
Folgende Fehlermeldung erhalte ich: Notice: Undefined variable: amount
Ist eigentlich auch klar, denn $amount wird _in_ der Funktion festgelegt und wird dann nicht übergeben, die Frage daher, wie kann ich diese übergeben? Der nächste Fehler der wohl anschließend kommen wird ist, dass $pages nicht gefunden wird, denn auch diese Variable wird in der Funktion berechnet. Und zu guter letzt könnte auch noch ein Problem mit LIMIT auftrete?
Ich hoffe Ihr könnt mir hier nochmals helfen. Vielen Dank schon einmal.