record verwijderen uit database
Ik zit met het volgende probleem. Voor een admin-pagina wil ik dat alle gebruikers worden opgehaald en kunnen worden verwijderd.
Het ophalen doe ik met onderstaande code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
echo '<form action="'. $_SERVER['PHP_SELF'].' " method="post">';
foreach($arProfielen as $key => $row){
$userid = $row['user_id'];
$voorletters = $row['voorletters'];
$tussenvoegsels = $row['tussenvoegsels'];
$naam = $row['naam'];
$email = $row['email'];
$status = $row['status'];
$rechten = $row['right_id'];
echo "<tr><td>$voorletters</td>";
echo "<td>$tussenvoegsels</td>";
echo "<td>$naam</td>";
echo "<td>$email</td>";
echo "<td>$status</td>";
echo "<td>$rechten</td>";
echo '<td><input type="submit" name="verwijderknop" value="verwijder" class="button"></td></tr>';
echo '</form>';
foreach($arProfielen as $key => $row){
$userid = $row['user_id'];
$voorletters = $row['voorletters'];
$tussenvoegsels = $row['tussenvoegsels'];
$naam = $row['naam'];
$email = $row['email'];
$status = $row['status'];
$rechten = $row['right_id'];
echo "<tr><td>$voorletters</td>";
echo "<td>$tussenvoegsels</td>";
echo "<td>$naam</td>";
echo "<td>$email</td>";
echo "<td>$status</td>";
echo "<td>$rechten</td>";
echo '<td><input type="submit" name="verwijderknop" value="verwijder" class="button"></td></tr>';
echo '</form>';
(Misschien dat ik geen foreach moet gebruiken? Ik weet het niet, ben maar beginner..)
Achter elke gebruiker heb ik dus een remove button. Als hierop gedrukt wordt, moet onderstaande code worden uitgevoerd:
Code (php)
1
2
3
4
5
2
3
4
5
if (isset($_POST["verwijderknop"])){
mysql_query("DELETE FROM profielen WHERE user_id = $userid")or die (mysql_error());
header ("Location: profielen.php");
exit;
}
mysql_query("DELETE FROM profielen WHERE user_id = $userid")or die (mysql_error());
header ("Location: profielen.php");
exit;
}
Het probleem is dat ik hiermee alleen het laatste record verwijder, in plaats van de persoon waar de button achter staat.
Er zal vast wel meer niet kloppen aan deze code, alle hulp is welkom. Bedankt
Je kan in het formulier niet zien op welke submit er wordt gedrukt. Ze zijn allemaal hetzelfde. Je zal dus de submit het id mee moeten geven lijkt mij.
Code (php)
1
<input type="submit" name="verwijderknop" value="verwijder" class="button" id="$userid">
Maar geeft hetzelfde effect :/
Hier stelt de 1 het id van de gebruiker voor.
Nadat het formulier verzonden is, kun je allereerst bekijken of $_POST['verwijderknop'] bestaat en vervolgens array_keys() gebruiken om het id te achterhalen (dat immers als key van de array 'verwijderknop' meegegeven is).
$voorletters = $row['voorletters'];
echo "<tr><td>$voorletters</td>";
Bovenstaande is niet zinvol, gewoon:
echo "<tr><td>$row['voorletters']</td>";
(Dat geldt dus voor alle waarden in je foreach loop.)
echo "<tr><td>$row['voorletters']</td>";
Wordt dan:
echo "<tr><td>" . $row['voorletters'] . "</td>";
Toevoeging op 22/01/2011 15:33:41:
En nog beter, enkele quotes:
echo '<tr><td>' . $row['voorletters'] . '</td>';
Krijg die rotknop nog steeds niet aan de praat. Ik struin het internet nog wel even verder af op die array_keys() functie
Tip: print de inhoud van de $_POST array eens als het formulier verzonden is, dan zie je wat er nu eigenlijk in zit...