Ik ben nog niet zo lang bezig met PHP en ik ben bezig om een script te maken waarmee ik cd's ed. in kan voeren en deze kan weergeven in een lijst.
Het invoeren en tonen van de lijst is gelukt, alleen nu wil ik dat er achter een rij een link komt waarmee ik de desbetreffende rij kan verwijderen. Ik heb het nu op onderstaande manier gedaan, maar het wil niet echt werken. Dus hopelijk kan iemand me wat advies geven. In functies.php staat het connecten met de database etc.

lijst.php
<?
include 'functies.php';

echo "<div align='center'>";
echo "<table width='700' style='border: 1 ridge white'>";
echo "<tr><b>";
echo "<th>Bandnaam</th>";
echo "<th>Album</th>";
echo "<th>Label</th>";
echo "<th>Jaar</th>";
echo "<th>Genre</th>";
echo "<th>Formaat</th>";
echo "<th>Overig</th>";
echo "</b></tr>";

$query="SELECT * FROM databasecd";
if (!($temp = mysql_query($query, $connection)))
showerror();

while ($cdlijst = mysql_fetch_array($temp)){

$band=$cdlijst["band"];
$album=$cdlijst["album"];
$label=$cdlijst["label"];
$jaar=$cdlijst["jaar"];
$genre=$cdlijst["genre"];
$formaat=$cdlijst["formaat"];
$overig=$cdlijst["overig"];

echo "<tr>";
echo "<td class='lstd'>" . $band. "</td>";
echo "<td class='lstd'>" . $album . "</td>";
echo "<td class='lstd'>" . $label . "</td>";
echo "<td class='lstd'>" . $jaar . "</td>";
echo "<td class='lstd'>" . $genre . "</td>";
echo "<td class='lstd'>" . $formaat . "</td>";
echo "<td class='lstd'>" . $overig . "</td>";
echo "<td class='lstd'><a href="delete.php?'.$row['id'].'">Verwijderen</a></td>";
echo "</tr>";
}
echo "</table>";
echo "</div>";
?>


delete.php
<?php
if(is_numeric($_POST['id'])){
    mysql_query("DELETE FROM databasecd WHERE id = '".mysql_real_escape_string($_POST['id'])."' ");
}
?> 
Je zet het id in de url, dus dan zul je die op moeten vragen met $_GET['id'] en niet met $_POST['id']. Tevens staat er op regel 38 nog een quotje dat geescaped moet worden.

En vervolgens is mysql_real_escape_string() in delete.php nutteloos. Het id is neem ik aan toch een integer, dus dan controleer je die input met is_numeric() of ctype_digit().
Heel simpel vb.

<a href="?id=<?php echo $id;?>delete=yes">delete</a>

----

if($_GET['delete'] == "yes"){
   //query delete
   mysql_query("DELETE FROM databasecd WHERE id = '".mysql_real_escape_string($_POST['id'])."' ");
}


Ik zou eens in de script lib kijken daar staan een aantal cd/dvd scripts met vast wel die delete functie. Daarvan kan je ff spieken hoe ze dat daardoen.
Bedankt beiden.
Ik zal eens kijken wat ik kan verbeteren.

Reageren