verwijderen uit database
ik heb een database en een php script die gegevens uit database haalt en allemaal onderelkaar weergeeft in een tabel.
Dat lukt allemaal wel. Maar nu wil ik het uitbereiden dat er in de laatste kolom knopjes komen achter elk record die dan die record verwijderd.
Dit is mij code;
<table width="520" bordercolor="#333333">
<tr>
<td width="125" bgcolor="#66CCFF">Naam</td>
<td width="125" bgcolor="#66CCFF">Adres</td>
<td width="125" bgcolor="#66CCFF">Plaats</td>
<td width="125" bgcolor="#66CCFF">Land</td>
</tr>
</table>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$query = "SELECT * FROM klanten";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
?>
$query = "SELECT * FROM klanten";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
?>
<table width="520" bordercolor="#333333">
<tr>
<td width="125" bgcolor="#CCCCCC"></td>
<td width="125" bgcolor="#CCCCCC"></td>
<td width="125" bgcolor="#CCCCCC"></td>
<td width="125" bgcolor="#CCCCCC"></td>
</tr>
</table>
niemand?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
if(isset($_POST['actie'])){
if($_POST['actie'] == 'verwijderen'){
if(isset($_POST['selected'])){
$queryarray = array();
foreach($_POST['selected'] as $key => $value){
$queryarray[] = 'id = '.$key;
}
$query = 'DELETE FROM klanten WHERE ';
$query .= implode(" OR ", $queryarray);
echo $query."\n";//voor het debuggen;
if(mysql_query($query)){
echo "Geselecteerde klanten zijn succesvol verwijdert.\n";
}
}else{
echo "geen regels geselecteerd";
}
}
}
?>
if(isset($_POST['actie'])){
if($_POST['actie'] == 'verwijderen'){
if(isset($_POST['selected'])){
$queryarray = array();
foreach($_POST['selected'] as $key => $value){
$queryarray[] = 'id = '.$key;
}
$query = 'DELETE FROM klanten WHERE ';
$query .= implode(" OR ", $queryarray);
echo $query."\n";//voor het debuggen;
if(mysql_query($query)){
echo "Geselecteerde klanten zijn succesvol verwijdert.\n";
}
}else{
echo "geen regels geselecteerd";
}
}
}
?>
<form action="" method="POST">
<table width="520" bordercolor="#333333">
<tr>
<td width="125" bgcolor="#66CCFF">Naam</td>
<td width="125" bgcolor="#66CCFF">Adres</td>
<td width="125" bgcolor="#66CCFF">Plaats</td>
<td width="125" bgcolor="#66CCFF">Land</td>
<tr width="20" bgcolor="#66CCFF"> </tr>
</tr>
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?
$query = "SELECT * FROM klanten";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
?>
$query = "SELECT * FROM klanten";
$result = mysql_query($query);
$numrows = mysql_num_rows($result);
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td width="125" bgcolor="#CCCCCC"></td>
<td width="125" bgcolor="#CCCCCC"></td>
<td width="125" bgcolor="#CCCCCC"></td>
<td width="125" bgcolor="#CCCCCC"></td>
<td width="20" bgcolor="#CCCCCC"><input type="checkbox" name="selected[]"/></td>
</tr>
<tr>
<td colspan="5">geselecteeden: <input type="submit" name="actie" value="verwijderen"/></td>
</tr>
</table>
</form>
Als linkje maak je dan b.v.:
en dan komt de code er ongeveer zo uit te zien:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
if( isset($_GET['verwijder']) ){
$naam = addslashes($_GET['verwijder']);
$query = "DELETE FROM klanten WHERE naam = '$naam'";
mysql_query($query);
}
?>
if( isset($_GET['verwijder']) ){
$naam = addslashes($_GET['verwijder']);
$query = "DELETE FROM klanten WHERE naam = '$naam'";
mysql_query($query);
}
?>
Let wel op dat iedere jan lul nu dingen uit je database kan verwijderen. En de kolom naam moet uniek zijn binnen je tabel anders gooi je meer dan 1 record weg, dus beter is om op primary key te verwijderen want die is wel uniek.
Gewijzigd op 05/06/2005 14:15:00 door Martijn B
PS: je (Enzo) had een paar onnetheden erin. Je had variablen tussen haakjes, wat niet hoort, en al helemaal niet als je alleen een variable gaat echoën.
Je had bij je array (in de whileloop) de namen (keys), die een string zijn en dus tussen haakjes moeten, niet tussen haakjes.
En verder, je maakte voor iedere nieuwe regel een nieuwe tabel aan.
Die van jelmer is idd mooier alleen dat van mij is wat beter te begrijpen.
Correctie: sneller te begrijpen.
Bedankt jongens voor jullie hulp, ik ga het uitproberen