Ik ben nu bezig met een delete script waarbij je eerste een overzicht krijgt van alle records in je tabel. Daarachter staat automatisch een link met verwijder.
Probleem : ik krijg die link niet goed dat er ook daadwerkelijk gedelete word.
2e vraag, heb het nu zo dat de laatste 15 records getoond worden, als er eenmaal meer in staan dan 15, hoe kan ik dan zorgen dat de volgende records getoond worden dmv een volgende pagina bijvoorbeeld ?
Hierbij overigens de code die ik nu heb :
<?php
include("../../incs/connect.php");
?>
<?php
$sqlout = "SELECT * FROM vangaart_nieuws ORDER BY id DESC Limit 15"; //nieuwste record bovenaan
$query_naam = mysql_query($sqlout) or die(mysql_error());
if ($_GET['id'] && is_numeric($_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=\"../nieuws/index.php?id=" . $rij['id'] . "\">Verwijderen?</a>" . "</td>
";
}
echo "</table>\n";
?>
@ Frank : <td><a href="../nieuws/index.php?id=8">Verwijderen?</a></td>
En wat je zegt van is_numeric ipv ctype_digit , ik had van iemand juist begrepen dat je dan numeric moest gebruiken. nooit van cype gehoord ook.
Maar dat moet dus worden : ctype_digit($_GET['id']) ?
@ Jurgen : die index is idd een beveiligde pagina dmv htacess, dat weglaten van numeric geprobeerd maar geen verschik.
overigens als je nu op verwijder klikt, dan ga je juist naar het nieuwsbericht om te lezen :-) en laat dat nu net het tegenovergestelde zijn van wat ik wil...
@ Frank : misschien een hele domme vraag, maar hoe doe ik dat :-s
( schaam me bijna dod dat ik het vraag... )
Overigens wel die ene regel aangepast.
Denk dat het zit in de link verwijzing aan het eind ( verwijder link ).
De records worden namelijk allemaal netjes weergegeven, alleen die link verwijst naar het bericht ipv dat hij hem delete
<?php
echo $query;
exit;
?>
Nadat je $query aangemaakt hebt. Optioneel kun je de exit; er ook achter zetten om te voorkomen dat de rest van het script uitgevoerd wordt.
Om te controleren of de query iets uitgevoerd heeft, kun je na het uitvoeren van de query de functie [php]mysql_affected_rows[/php]() aanroepen. Dus iets als:
<?php
if(mysql_affected_rows())
{
// query gelukt.
}
?>
<?
echo 'query gelukt.';
?>
is natuurlijk vele malen zinvoller dan
<?
// query gelukt.
?>
In het 2e geval weet je namelijk nog steeds niet of de query nu wél of niet is gelukt
Op regel 1 van je voorbeeld heb je een <tr> tag, maar die wordt nergens gesloten.
Verder ben je niet echt scheutig met je info. Wat is de returnwaarde van mysql_affected_rows? Heb je al met phpMyAdmin gekeken of er ook echt records uit je tabel verdwenen zijn?