Gegevens worden niet verwijderd uit DB
Ik ben wat aan het stoeien met een script om gegevens uit mijn DB te verwijderen.
De pagina's worden correct weergegeven, de afhandeling vermeld netjes dat het gelukt is,
maar de gegevens blijven in de DB staan. Iemand een idee waar het precies fout zit?
Ik heb voor deze actie 2 bestanden aangemaakt. delete.php en delete_ac.php.
Delete.php:
Quote:
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td colspan="5" bgcolor="#FFFFFF"><strong>Delete data in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF"><strong>Schrijver</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Titel</strong></td>
<td align="center" bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><a href="delete_ac.php?Titel=">delete</a></td>
</tr>
</table>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="Verlanglijst"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// select record from mysql
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="Verlanglijst"; // Table name
// Connect to server and select database.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// select record from mysql
$sql="SELECT * FROM $tbl_name";
$result=mysql_query($sql);
?>
<table width="400" border="0" cellpadding="3" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td colspan="5" bgcolor="#FFFFFF"><strong>Delete data in mysql</strong> </td>
</tr>
<tr>
<td align="center" bgcolor="#FFFFFF"><strong>Schrijver</strong></td>
<td align="center" bgcolor="#FFFFFF"><strong>Titel</strong></td>
<td align="center" bgcolor="#FFFFFF"> </td>
</tr>
<tr>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"></td>
<td bgcolor="#FFFFFF"><a href="delete_ac.php?Titel=">delete</a></td>
</tr>
</table>
Delete_ac.php
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="Verlanglijst"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// get value of id that sent from address bar
$id=$_GET['id'];
// Delete data in mysql from row that has this id
$sql="DELETE FROM $tbl_name WHERE Titel='$Titel'";
$result=mysql_query($sql);
// if successfully deleted
if($result){
echo "Deleted Successfully";
echo "<BR>";
echo "<a href='delete.php'>Back to main page</a>";
}
else {
echo "ERROR";
}
?>
$host=""; // Host name
$username=""; // Mysql username
$password=""; // Mysql password
$db_name=""; // Database name
$tbl_name="Verlanglijst"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// get value of id that sent from address bar
$id=$_GET['id'];
// Delete data in mysql from row that has this id
$sql="DELETE FROM $tbl_name WHERE Titel='$Titel'";
$result=mysql_query($sql);
// if successfully deleted
if($result){
echo "Deleted Successfully";
echo "<BR>";
echo "<a href='delete.php'>Back to main page</a>";
}
else {
echo "ERROR";
}
?>
Of moet het script dat zelf maar bedenken?
Om te weten of er iets is verwijderd zie mysql_affected_rows().
Erwin H op 05/08/2013 14:11:05:
Ik heb voor dit onderdeel maar 2 waarden staan in mijn DB. Schrijver en Titel.
Ik had het idee dat deze op basis van Titel verwijderd kan worden.
Hoe zou ik dit dan in moeten vullen?
Er staat niets in de variabele $titel.
Staat er ergens iets als dit?
$titel = $_POST['titel']
of
$titel = $_GET['titel']
Vertel ons eens welk boek moet verwijderd worden. Op basis waarvan moet de computer weten over welk boek je het hebt?
PHP Noob op 05/08/2013 14:38:58:
Ik heb voor dit onderdeel maar 2 waarden staan in mijn DB. Schrijver en Titel.
Ik had het idee dat deze op basis van Titel verwijderd kan worden.
Ik had het idee dat deze op basis van Titel verwijderd kan worden.
Heb je ook een veld id (met auto increment)? Dat is meestal wel een goed idee.
Stel je voor dat twee verschillende schrijvers een boek schrijven met de zelfde titel.
Hoe weet je dan welk boek je wil verwijderen?
Met een id is het veel gemakkelijker.
Wanneer je naar de pagina delete.php gaat, krijg je een net overzicht te zien met de volgende opbouw:
Schrijver Titel
Kees ABC Delete
Het idee is dat wanneer je op delete klikt, de regel ervoor geselecteerd wordt.
Door deze opbouw dacht ik geen id nodig te hebben.
Heb jij toevallig suggesties hoe ik dat in deze kan oplossen?
Of toch alles omgooien?
PS: Ik ben overigens niet zo bang om hier dubbelen te hebben. Ik gebruik mijn site vooral om overal te kunnen checken of ik een bepaald boek al heb. Indien dat niet het geval is wil ik deze toevoegen aan mijn DB (dat is inmiddels gelukt). Wanneer ik het boek vervolgens koop, wil ik deze er ook makkelijk uit kunnen halen.
Gewijzigd op 05/08/2013 15:01:24 door PHP Noob
PHP Noob op 05/08/2013 14:57:51:
Wanneer je naar de pagina delete.php gaat, krijg je een net overzicht te zien met de volgende opbouw:
Schrijver Titel
Kees ABC Delete
Schrijver Titel
Kees ABC Delete
Okay, op delete.php zie je dat overzicht. Die "delete"-knop ziet er dan zo uit:
<a href="delete.php?id=15">Verwijder</a>
Als de gebruiker op die link klikt, komt hij op delete.php terecht, maar dan met met een id in de url (in dit geval dus 15).
Dan kan je op delete.php bv dit doen:
delete.php
Code (php)
Snap je?
Gewijzigd op 05/08/2013 15:39:41 door Kris Peeters
Nu krijg ik het wel voor elkaar :)
Bedankt voor je hulp/ advies!
Topic mag gesloten worden :)