Next/Previous, sorteren, muteren
Ik ben zelf met een backoffice bezig waarbij ik Next/Previous, sorteren, muteren op een pagina wilde hebben. Door voor heb ik mij een beetje rot gezocht en dacht, laat ik dat eens samenvoegen. Ik heb de scriptjes o.a. van deze website afgehaald en heb ze dus niet zelf gemaakt. Het leek mij alleen handig voor andere mensen om deze scripts in een keer ergens vandaan te kunnen halen. Overigens..een database ontbreekt. Na commentaar heb ik variabele die ik eerste $1, $2, etc noemde, veranderd naar NAW gegevens. Dus om het script echt te laten werken, moet je eerst even een database maken waarin "voorletters, voornaam, achternaam, straat, postcode, plaats en land" in staan. Het bestaat eigelijk uit twee bestanden, dat wordt onderaan het script wel duidelijk. Ik krijg dat alleen niet nog duidelijker weergegeven. Het is mijn eerste toevoeging, dus hoor graag wat men ervan vind. Oja, let aub niet op de leesbaarheid, al heb ik het zo goed mogelijk proberen te doen.
[code]
<?php
require_once("inc_connect.php");
$pagenum = $_GET['pagenum'];
// Kijkt of $pagenum een waarde heeft, zo niet, dan wordt het "1"
if (!(isset($pagenum))) {$pagenum = 1;}
// Hier kijken we hoeveel records we hebben
$data = mysql_query("SELECT id FROM tabelnaam") or die(mysql_error());
$rows = mysql_num_rows($data);
// Hoeveel rijen per pagina willen we?
$page_rows = 20;
// Wat is het maximaalt aantal pagina?
$last = ceil($rows/$page_rows);
// Dit zorgt ervoor dat $pagenum niet onder 1 of boven het maximun komt.
if ($pagenum < 1)
{
$pagenum = 1;
}
elseif ($pagenum > $last)
{
$pagenum = $last;
}
// $max is een deel-query die resultaten geeft afhankelijk van welke pagina je zit.
$max = 'limit ' .($pagenum - 1) * $page_rows .',' .$page_rows;
// Sorteer volgorde bepalen
function sortdirection($direction)
{
if ($_GET[direction] == "DESC")
{ $direction = "ASC"; }
else
{ $direction = "DESC"; }
return $direction;
} // Einde functie
// Waarde van $direction wordt ASC of DESC
$direction = $_GET[direction];
//Sorteer de tabel op een bepaalde kolom
if ($_GET['sort']) {
$waarde = $_GET['sort'];
$sort = 'ORDER BY '.$waarde.' '.$direction;
// Hier dezelfde query als eerst, maar nu met $sort (sorteren op ... ASC/DESC)
// en $max (geeft een beperkt aantal records weer).
$res = mysql_query("SELECT * FROM tabelnaam $sort $max") or die(mysql_error());
}
else {
// Dit is een standaard query die alleen wordt uitgevoerd wanneer $sort leeg is,
// dus wanneer nog niet op de kolomtitel is geklikt om te sorteren.
$res = mysql_query("SELECT * FROM tabelnaam ORDER BY optionelewaarde $max") or die(mysql_error());
}
if ($res && mysql_num_rows($res) >= 1)
{
echo '<table border="1">';
echo '
<tr bgcolor="silver">
<td> <a href="?sort=voorletters&direction='.sortdirection($direction).'&pagenum='.$pagenum.'">Voorletters</a> </td>
<td> <a href="?sort=voornaam&direction='.sortdirection($direction).'&pagenum='.$pagenum.'">Voornaam</a> </td>
<td> <a href="?sort=achternaam&direction='.sortdirection($direction).'&pagenum='.$pagenum.'">Achternaam</a> </td>
<td> <a href="?sort=straat&direction='.sortdirection($direction).'&pagenum='.$pagenum.'">Straat</a> </td>
<td> <a href="?sort=postcode&direction='.sortdirection($direction).'&pagenum='.$pagenum.'">Postcode</a> </td>
<td> <a href="?sort=plaats&direction='.sortdirection($direction).'&pagenum='.$pagenum.'">Plaats</a> </td>
<td> <a href="?sort=land&direction='.sortdirection($direction).'&pagenum='.$pagenum.'">Land</a> </td>
<td>Veranderen</td>
<td>Delete</td>
</tr>
';
// Teller variabele voor zebra-effect
$n = 1;
while ($row = mysql_fetch_array($res))
{
// Zebra effect op de tabel gooien
if( $odd = $n%2 ){ echo '<tr>';}
else { echo '<tr bgcolor="#6088af">';}
$n++;
// Rest van de tabel opbouwen
echo '
<td>'.$row['voorletters'].'</td>
<td>'.$row['voornaam'].'</td>
<td>'.$row['achternaam'].'</td>
<td>'.$row['straat'].'</td>
<td>'.$row['postcode'].'</td>
<td>'.$row['plaats'].'</td>
<td>'.$row['land'].'</td>
<td><a href="?id='.$row[id].'&sort='.$_GET[sort].'&direction='.$direction.'&pagenum='.$pagenum.'">Verander</a></td>
<td><a href="delete_from.php?id='.$row['id'].'&actie=del">Delete</a></td>
</tr>
';
} // Einde while-loop "data uit database in tabel stoppen".
echo '</table>';
}
else {
echo 'Nix gevonden...';
}
// Laat de zien wat de huidige pagina is en hoeveel er in totaal zijn.
echo " --Page $pagenum of $last-- <p>";
// Checken op we op 1ste pagina zijn. Zo ja, dan maken we geen First, Previous link.
// Zo niet, dan maken we die wel.
if ($pagenum == 1){
}
else
{
// Link 1ste pagina.
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=1&sort=".$waarde."&direction=".$direction."'> <<-First</a> ";
echo " ";
$previous = $pagenum-1;
// Link vorige pagina.
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$previous&sort=".$waarde."&direction=".$direction."'> <-Previous</a> ";
}
// Een spacer
echo " ---- ";
// Idem, maar dan voor volgende en laatste link.
if ($pagenum == $last){
}
else {
$next = $pagenum+1;
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$next&sort=".$waarde."&direction=".$direction."'>Next -></a> ";
echo " ";
echo " <a href='{$_SERVER['PHP_SELF']}?pagenum=$last&sort=".$waarde."&direction=".$direction."'>Last ->></a> ";
}
// WAT HIERONDER VOLGT IS RECORDS AANPASSEN, OPTIONEEL
// WAT HIERONDER VOLGT IS RECORDS AANPASSEN, OPTIONEEL
if ($_GET[id]) {
echo '<hr>';
$sql2 = "SELECT * FROM tabelnaam WHERE id = ".$_GET[id]."";
$res = mysql_query($sql2);
$row = mysql_fetch_array($res);
if (empty($_POST["submit"])) {
?>
<form method="post" action="">
<table>
<tr>
<td width="46">Voorletters:</td>
<td colspan="5">
<input type="text" name="voorletters" size="35" value="<?php echo $row['voorletters']; ?>"/>
</td>
<td rowspan="5">
Verwijder deze data:
<a href="delete_from.php?id=<?php echo $_GET[id]?>&actie=del">Delete</a>
</td>
</tr>
<tr>
<td>Voornaam:</td>
<td colspan="5">
<input type="text" name="voornaam" size="35" value="<?php echo $row['voornaam']; ?>"/>
</td>
</tr>
<tr>
<td>Achternaam:</td>
<td colspan="5">
<input type="text" name="achternaam" size="10" maxlength="6" value="<?php echo $row['achternaam']; ?>"/>
</td>
</tr>
<tr>
<td>Straat:</td>
<td colspan="4">
<input type="text" name="straat" size="50" value="<?php echo $row['straat']; ?>"/>
</td>
</tr>
<tr>
<td>Postcode:</td>
<td>
<input type="text" name="postcode" size="5" value="<?php echo $row['postcode']; ?>"/>
</td>
<td>Plaats:</td>
<td>
<input type="text" name="plaats" size="10" value="<?php echo $row['plaats']; ?>"/>
</td>
<td>Land:</td>
<td>
<input type="text" name="land size="10" value="<?php echo $row['land']; ?>"/>
</td>
</tr>
</table>
<hr />
<input type="submit" value="Endern" name="submit" />
<input type="Reset" value="Legen" />
</form>
<?php
}
else {
$sql3 = "SELECT * FROM tabelnaam WHERE id = ".$_GET[id]."";
$res = mysql_query($sql3);
$row = mysql_fetch_array($res);
$voorletters=$_POST['voorletters'];
$voornaam=$_POST['voornaam'];
$achternaam=$_POST['achternaam'];
$straat=$_POST['straat'];
$postcode=$_POST['postcode'];
$woonplaats=$_POST['woonplaats'];
$land=$_POST['land'];
// Record wordt geupdate.
$sql4= "UPDATE tabelnaam SET voorletters = '".$voorletters."', voornaam = '".$voornaam."', achternaam = '".$achternaam."', straat = '".$straat."' , postcode = '".$postcode."', woonplaats = '".$woonplaats."' , land = '".$land."' WHERE id = ".$_GET[id]."";
$result = mysql_query($sql4) or die ("FOUT: " . mysql_error());
echo("Het volgende record is geupdate:<br />");
echo("1: ".$voorletters."<br />");
echo("2: ".$voornaam."<br />");
echo("3: ".$achternaam."<br />");
echo("4: ".$straat."<br />");
echo("5: ".$postcode."<br />");
echo("6: ".$plaats."<br />");
echo("7: ".$land."<br />");
}
}
?>
[\code]
Delete gedeelte, wat in delete_from.php moet komen te staan.
[code]
<?php
require_once("inc_connect.php");
if ($_GET[id] & $_GET[actie] ) {
$sql="DELETE FROM tabelnaam WHERE id = ".$_GET[id]."";
echo $sql;
$res = mysql_query($sql) or die(mysql_error());}
header('Refresh: 0; url=vorigepagina.php');
?>
[/code]
Reacties
0