次の関数はページをロードし続け、問題が見つかりません。
値は次のとおりです。
$per_page = 10;
$soort = 2;
$query = "SELECT id, name, email, status FROM users WHERE company_id = " . $id . " AND status != 3";
$array = array("#", "Naam", "E-mail", "Status", "Tools");
$id
は$_GET
URL にあります。
コード:
public function table($per_page, $soort, $query, $array)
{
// elke soort table moet hier een table if() hebben.
// standaart value's
$i = 0;
$countx = count($array);
$x = 1;
// checkt of de td nummer even of oneven is zodat het een andere style krijgt.
function get()
{
// de naam van de $_GET
$prefix = "p";
return $prefix;
}
function evencheck($number)
{
if (is_int($number / 2))
{
return'col1';
}
else
{
return'col2';
}
}
if ($result = $this->db->query($query))
{
if ($result->num_rows != 0)
{
$total_results = $result->num_rows;
// Kijken hoeveel pagina's er moeten komen voor de pagination.
$total_pages = ceil($total_results / $per_page);
if (isset($_GET[get()]) && is_numeric($_GET[get()]))
{
$show_page = $_GET[get()];
// make sure the $show_page value is valid
if ($show_page > 0 && $show_page <= $total_pages)
{
$start = ($show_page - 1) * $per_page;
$end = $start + $per_page;
}
else
{
// error - show first set of results
$start = 0;
$end = $per_page;
}
}
else
{
// if page isn't set, show first set of results
$start = 0;
$end = $per_page;
}
// display pagination
// display data in table
echo "<table>";
echo "<tr class='headtr'>";
// maakt de head van de table via een array die is mee gegeven aan de function.
foreach ($array as $headtable)
{
echo "<td class='headtd'><b>" . $headtable . "<b></td>";
}
echo "</tr>";
echo "<tr>";
// Ik zie zelf nog geen andere oplossing dan dit.
// Vooral omdat de tables zo veel van elkaar verschillen.
$result->data_seek($i);
$row = $result->fetch_row();
$count = count($row);
if ($soort == 1)
{
//logs
// stemt de while af met de array input, dus -1 omdat de array begint met 0.
$x = $count - 1;
while ($i <= $x)
{
echo "<td class='" . evencheck($i) . "'>" . $row[$i] . "</td>";
$i++;
}
}
if ($soort == 2)
{
//users/bedrijven (ADMIN module)
$rLog = $this->rights('admin/log');
$rEdit = $this->rights('admin/bedrijven/gebruikers/bewerken');
$rLogin = $this->rights('admin/bedrijven/gebruikers/inloggen');
$rDelete = $this->rights('admin/bedrijven/gebruikers/verwijderen');
// Een extra TD voor de tools achter bij de table.
$x = $count;
while ($i <= $x)
{
if ($i == $total_results)
{
break;
}
$result->data_seek($i);
$row = $result->fetch_row();
echo "<tr>";
echo "<td class='" . evencheck($i) . "'>" . $row[0] . "</td>";
echo "<td class='" . evencheck($i) . "'>" . $row[1] . "</td>";
echo "<td class='" . evencheck($i) . "'>" . $row[2] . "</td>";
echo "<td class='" . evencheck($i) . "'>" . ($row[3] == 1 ? 'Actief' : 'Geblokkeerd') . "</td>";
//tools td.
echo "<td id='tools' class='" . evencheck($i) . "'>" . ($rLog ? '<a href="/admin/log/' . $row[0] . '">' . LOG . '</a>' : '') . '
' . ($rEdit ? '<a href="/admin/bedrijven/gebruikers/bewerken/' . $row[0] . '">' . EDIT . '</a>' : '') . '
' . ($rLogin ? '<a href="javascript:;" onClick="sure(\'Wilt u een verzoek versturen naar ' . htmlentities($row[1]) . ' voor ondersteuning?\', \'/admin/bedrijven/gebruikers/inloggen/' . $row[0] . '\');">' . LOGIN . '</a>' : '') . '
' . ($rDelete ? '<a href="javascript:;" onClick="sure(\'Weet u zeker dat u de gebruiker ' . htmlentities($row[1]) . ' wilt verwijderen?\', \'/admin/bedrijven/gebruikers/verwijderen/' . $row[0] . '\');">' . DEL . '</a>' : '')
. "</td>";
echo "</tr>";
}
//paginstion er aan plakken
$this->pagination($per_page, $total_results, $total_pages, $countx);
}
}
else
{
echo "No results to display!";
}
}
else
{
echo "Er is iets fout gegaan!<br>" . $db->error;
}
}
Firebug 経由のコンソール:
ページネーション機能に問題がないことはすでに確認済みです。