Hallo allemaal,

Eindelijk heb ik alles klaar in mijn script om records te deleten, alleen nu wil ik er graag nog een functie in dat hij per pagina 10 records weer geeft.

De eerste 10 echter is geen probleem, dat heb ik met limit 10 gedaan.
Alleen hoe krijg ik die navigatie voor elkaar ?

Hierbij de code van de pagina :


<?php
		include("../../incs/connect.php");
      	
 ?>
<?php
$sqlout = "SELECT * FROM vangaart_nieuws ORDER BY id DESC Limit 10"; //nieuwste record bovenaan
$query_naam = mysql_query($sqlout) or die(mysql_error());

if (isset($_GET['id']) && ctype_digit($_GET['id'])){
  $query= "DELETE FROM vangaart_nieuws WHERE id = '".$_GET['id']."'";   
  mysql_query($query) or die(mysql_error()); 
}


echo "<b>Overzicht Berichten</b>";

echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">\n";

echo "\n<tr bgcolor=\"#666666\">
\n<td>id</td>
\n<td>datum</td>
\n<td>titel</td>
\n<td>record verwijderen?</td>
\n</tr>";

while($rij=mysql_fetch_array($query_naam)) {
  if ($kleur == "#666666"){
    $kleur = "#999999";
  }else{
    $kleur = "#999999";
  }  
  echo "<tr bgcolor=\"" . $kleur . "\">
  \n<td>" . $rij['id'] . "</td>
  \n<td>" . $rij['datum'] . "</td>
  \n<td>" . $rij['titel'] . "</td>
  \n<td>" . "<a href=\"index.php?page=verwijderen&id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
";

}
echo "</table>\n";
echo "<br><br><b>Bericht verwijderd ?</b><br>Klik <a href=\"index.php?page=verwijderen\">hier</a> om pagina te updaten.<br><Br>";

?> 

je kunt de navigatie op 2 manieren doen.
Je zet in de URL op welke pagina je bent.
Of je zet dit in een sessie.

Maakt niet uit welke van de twee je kiest, maar het komt er op neer dat je die waarde op moet halen. en dan aan de hand daarvan moet berekenen welke 10 records opgehaald moeten worden.
Dus bijv.
pagina = 2 dan is LIMIT 10,10
pagina = 6 dan is LMIT 50,10

oftewel kun je bijv dit maken.
<?php
$begin = ($_GET['p'] - 1) * 10;
$eind = 10;
LIMIT $begin,$eind;
?>
uiteraard nog wel even controleren op input wanneer je met een URL gaat werken.

Hoop dat je hier wat mee kan.
@ Stefan : stefan, ik begrijp wat je bedoeld, alleen ik snap niet hoe ik dat moet inpassen.

:(
Deze regel:
<?php
$sqlout = "SELECT * FROM vangaart_nieuws ORDER BY id DESC Limit 10"; //nieuwste record bovenaan
?>
zou zoiets moeten worden:
<?php
$sqlout = "
SELECT *
FROM vangaart_nieuws
ORDER BY id DESC
LIMIT " . $begin . ", 10";
?>
De variabele $begin haal je op met GET, zoals Stefan al zei. Je moet dus een link boven je tabel hebben die er bijv zo uitziet:

<?php
    <a href="?begin=30">30</a>
?>

Zoals ook al eerder gezegd, als je met GET variabelen werkt moet je aan beveiliging doen. Dus kijken met isset ($_GET['begin']) of hij wel gezet is en met is_numeric () of het wel een getal is.
@ Jan : Ik heb het nu zo staan




<?php
		include("../../incs/connect.php");
      	
 ?>
<?php
    $sqlout = "
        SELECT *
        FROM vangaart_nieuws
        ORDER BY id DESC
        LIMIT " . $begin . ", 10";
		
$query_naam = mysql_query($sqlout) or die(mysql_error());

if (isset($_GET['id']) && ctype_digit($_GET['id'])){
  $query= "DELETE FROM vangaart_nieuws WHERE id = '".$_GET['id']."'";   
  mysql_query($query) or die(mysql_error()); 
}


echo "<b>Overzicht Berichten</b>";

echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">\n";

echo "\n<tr bgcolor=\"#666666\">
\n<td>id</td>
\n<td>datum</td>
\n<td>titel</td>
\n<td>record verwijderen?</td>
\n</tr>";

while($rij=mysql_fetch_array($query_naam)) {
  if ($kleur == "#666666"){
    $kleur = "#999999";
  }else{
    $kleur = "#999999";
  }  
  echo "<tr bgcolor=\"" . $kleur . "\">
  \n<td>" . $rij['id'] . "</td>
  \n<td>" . $rij['datum'] . "</td>
  \n<td>" . $rij['titel'] . "</td>
  \n<td>" . "<a href=\"index.php?page=verwijderen&id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
";

}
echo "</table>\n";
echo "<br><br><b>Bericht verwijderd ?</b><br>Klik <a href=\"index.php?page=verwijderen\">hier</a> om pagina te updaten.<br><Br>
<a href=\"index.php?page=verwijderen&begin=30\">30</a>";

?> 




en krijg vervolgens deze melding :

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ' 10' at line 4
misschien nog een toevoeg voor links nar volgende pagina:

<?

$id = "$GET['id']";
$volgendepagina = "$id + 10";

<a href="index?id=".$id."> Volgende pagina </a>

?>


hoop dat het werkt. nogal nieuw in php
je kent $begin nergens een waarde toe.

Je moet met een $_GET de juiste pagina uit de URL halen. uiteraard dien je dan bij de link naar de volgende pagina wel de volgende pagina op te geven.

zo dus
<?php
echo('<a href="pagina&p='.$p+1.'">'.$p+1.'</a>');
?>
@ Stefan : ik heb het nu zo staan,


<?php
    $sqlout = "
        SELECT *
        FROM vangaart_nieuws
        ORDER BY id DESC
        LIMIT " . $begin . ", 10";

		
$query_naam = mysql_query($sqlout) or die(mysql_error());
$begin = ($_GET['p'] - 1) * 10;
$eind = 10;
LIMIT $begin,$eind;
?>


en helemaal onderaan de pagina dit gezet :


<?php

echo "('<a href="index.php?page=verwijderen&p='.$p+1.'">'.$p+1.'</a>')";

?>


Maar het werkt niet en dat ligt ongetwijfeld aan mijn kennis :D :(
De LIMIT moet in $sqlout zitten, omdat dat met de mysql te maken heeft.

<?
     $sqlout = "
          SELECT *
          FROM vangaart_nieuws
          ORDER BY id DESC
          LIMIT " . $begin . ", 10";

$query_naam = mysql_query($sqlout) or die(mysql_error());
$begin = ($_GET['p'] - 1) * 10;
?>

De link geeft een fout vanwege je ":
[code]
<?
$p = $_GET['p']; // haal je hier p vandaan?
echo "('<a href=\"index.php?page=verwijderen&p='.$p+1.'</a>')";
?>
Óf je doet het zo:

[edit]Naar jouw code aangepast, dus copy paste :)[/edit]

<?php

include("../../incs/connect.php");

// how many rows to show per page
$rowsPerPage = 23;
// by default we show first page
$pageNum = 1;
// if $_GET['page'] defined, use it as page number
if(isset($_GET['page']))
{
$pageNum = $_GET['page'];
}
// counting the offset
$offset = ($pageNum - 1) * $rowsPerPage;
$sql = "$sqlout = "SELECT * FROM vangaart_nieuws ORDER BY id DESC Limit 10";
$query = mysql_query($sql) or die(mysql_error());

if (isset($_GET['id']) && ctype_digit($_GET['id'])){
$query= "DELETE FROM vangaart_nieuws WHERE id = '".$_GET['id']."'";
mysql_query($query) or die(mysql_error());
}

// print the output
echo "<b>Overzicht Berichten</b>";

echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">\n";

echo "\n<tr bgcolor=\"#666666\">
\n<td>id</td>
\n<td>datum</td>
\n<td>titel</td>
\n<td>record verwijderen?</td>
\n</tr>";
while($row = mysql_fetch_object($query)) {
if ($kleur == "#666666"){
$kleur = "#999999";
}else{
$kleur = "#999999";
}
echo "<tr bgcolor=\"" . $kleur . "\">
\n<td>" . $rij['id'] . "</td>
\n<td>" . $rij['datum'] . "</td>
\n<td>" . $rij['titel'] . "</td>
\n<td>" . "<a href=\"index.php?page=verwijderen&id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
";
}
echo "</table>\n";
echo "<br><br><b>Bericht verwijderd ?</b><br>Klik <a href=\"index.php?page=verwijderen\">hier</a> om pagina te updaten.<br><Br>";

// how many rows we have in database
$query = "SELECT COUNT(name) AS numrows FROM pcm";
$result = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($result, MYSQL_ASSOC);
$numrows = $row['numrows'];
// how many pages we have when using paging?
$maxPage = ceil($numrows/$rowsPerPage);
// print the link to access each page
$self = $_SERVER['PHP_SELF'];
// creating previous and next link
// plus the link to go straight to
// the first and last page
if ($pageNum > 1)
{
$page = $pageNum - 1;
$prev = " <a href=\"$self?page=$page\">«Prev</a> ";

$first = " <a href=\"$self?page=1\">««First Page</a> ";
}
else
{
$prev = '&nbsp;'; // we're on page one, don't print previous link
$first = '&nbsp;'; // nor the first page link
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$next = " <a href=\"$self?page=$page\">Next»</a> ";

$last = " <a href=\"$self?page=$maxPage\">Last Page»»</a> ";
}
else
{
$next = '&nbsp;'; // we're on the last page, don't print next link
$last = '&nbsp;'; // nor the last page link
}

// print the navigation link
echo $first . $prev . " Showing page $pageNum of $maxPage pages " . $next . $last;
// and close the database connection
?>
@ Flip : Je code kwam zeker van pas, alleen moesten er nog wel wat foutjes veranderd worden, maar wel enorm bedankt voor je bijdrage! :-)

Alleen nu heb ik dan in totaal deze code, maar probleem is nu dat hij niet meer de resultaten weer geeft die in de tabel staan :-D
Pagina navigatie vorige en volgende werkt weer wel...


<?php

        include("../../incs/connect.php");

 // how many rows to show per page
 $rowsPerPage = 10; 
 // by default we show first page
 $pageNum = 1; 
 // if $_GET['page'] defined, use it as page number
 if(isset($_GET['id2']))
 {
    $pageNum = $_GET['id2'];
 } 
 // counting the offset
 $offset = ($pageNum - 1) * $rowsPerPage;
$sql = "SELECT * FROM vangaart_nieuws ORDER BY id DESC Limit 10";
$query = mysql_query($sql) or die(mysql_error());

if (isset($_GET['id']) && ctype_digit($_GET['id'])){
  $query= "DELETE FROM vangaart_nieuws WHERE id = '".$_GET['id']."'";   
  mysql_query($query) or die(mysql_error()); 
}

// print the output 
echo "<b>Overzicht Berichten</b>";

echo "<table width=\"100%\" border=\"0\" cellspacing=\"2\" cellpadding=\"2\">\n";

echo "\n<tr bgcolor=\"#666666\">
\n<td>id</td>
\n<td>datum</td>
\n<td>titel</td>
\n<td>record verwijderen?</td>
\n</tr>";
 while($row = mysql_fetch_object($query)) {
if ($kleur == "#666666"){
    $kleur = "#999999";
  }else{
    $kleur = "#999999";
  }  
  echo "<tr bgcolor=\"" . $kleur . "\">
  \n<td>" . $rij['id'] . "</td>
  \n<td>" . $rij['datum'] . "</td>
  \n<td>" . $rij['titel'] . "</td>
  \n<td>" . "<a href=\"index.php?page=verwijderen&id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
";
}
echo "</table>\n";
echo "<br><br><b>Bericht verwijderd ?</b><br>Klik <a href=\"index.php?page=verwijderen\">hier</a> om pagina te updaten.<br><Br>";

// how many rows we have in database
 $query   = "SELECT COUNT(id) AS numrows FROM vangaart_nieuws";
 $result  = mysql_query($query) or die('Error, query failed');
 $row     = mysql_fetch_array($result, MYSQL_ASSOC);
 $numrows = $row['numrows'];
 // how many pages we have when using paging?
 $maxPage = ceil($numrows/$rowsPerPage); 
 // print the link to access each page
 $self = $_SERVER['PHP_SELF'];
 // creating previous and next link
 // plus the link to go straight to
 // the first and last page
 if ($pageNum > 1)
 {
    $page = $pageNum - 1;
    $prev = " <a href=\"index.php?page=verwijderen2&id2=$page\">« Vorige</a> ";
    
    $first = " <a href=\"index.php?page=verwijderen2&id2=1\">«« Eerste pagina</a> ";
 } 
 else
 {
    $prev  = '&nbsp;'; // we're on page one, don't print previous link
    $first = '&nbsp;'; // nor the first page link
 }

 if ($pageNum < $maxPage)
 {
    $page = $pageNum + 1;
    $next = " <a href=\"index.php?page=verwijderen2&id2=$page\">» Volgende</a> ";
    
    $last = " <a href=\"index.php?page=verwijderen2&id2=$maxPage\">»» Laatste pagina</a> ";
 } 
 else
 {
    $next = '&nbsp;'; // we're on the last page, don't print next link
    $last = '&nbsp;'; // nor the last page link
 }
 
// print the navigation link
echo "Toont pagina $pageNum van $maxPage pagina's <br>". $first . $prev . $next . $last;
 // and close the database connection
 ?> 

Reageren