Rij deleten informatie uit SQL database
Ik heb om te oefenen met PHP een database gemaakt, waarbij ik in eerste instantie de mogelijkheid heb ingebouwd om gegevens toe te voegen, maar nu wil ik deze gegevens ook weer kunnen deleten. Ik heb al meerdere tutorials doorlopen en volgens mijn visie zou het moeten werken, het script wordt ook zonder foutmelding uitgevoerd, alles wordt de rij die ik wil deleten niet weggehaald uit de database. Mijn code is als volgt:
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
31
32
33
34
35
36
37
38
39
40
41
42
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
31
32
33
34
35
36
37
38
39
40
41
42
<?php
//Maak verbinding met de sql server, login, password
$link = mysql_connect("localhost", "root");
//Selecteer de database
mysql_select_db("chapter7");
$sql ="
SELECT
phoneList.id, phonelist.firstName, phonelist.lastName, phonelist.email, phonelist.phone
FROM
phoneList
ORDER BY
phoneList.id";
$result = mysql_query($sql);
echo "<table border=\"0\"><tr>
<td width=\"50\" align=\"center\">ID</td>
<td width=\"100\" align=\"center\">First Name</td>
<td width=\"100\" align=\"center\">Last Name</td>
<td width=\"200\" align=\"center\">E-Mail Adress</td>
<td width=\"100\" align=\"center\">Phone Number</td><tr></table>";
while ($row = mysql_fetch_array($result)) {
echo "<table border=\"0\"><tr>
<td width=\"50\" align=\"center\">" . $row["id"] . "</td>
<td width=\"100\" align=\"center\">" . $row["firstName"] . "</td>
<td width=\"100\" align=\"center\">" . $row["lastName"] . "</td>
<td width=\"200\" align=\"center\">" . $row["email"] . "</td>
<td width=\"100\" align=\"center\">" . $row["phone"] . "</td>
<td width=\"60\" align=\"center\"><a href=./delete.php?id=$id'" . $row["id"] . "'>Delete</a></td>
<td width=\"60\" align=\"center\"><a href=./edit.php?id=$id'" . $row["id"] . "'>Edit</a></td>
<tr></table>";
}
?>
//Maak verbinding met de sql server, login, password
$link = mysql_connect("localhost", "root");
//Selecteer de database
mysql_select_db("chapter7");
$sql ="
SELECT
phoneList.id, phonelist.firstName, phonelist.lastName, phonelist.email, phonelist.phone
FROM
phoneList
ORDER BY
phoneList.id";
$result = mysql_query($sql);
echo "<table border=\"0\"><tr>
<td width=\"50\" align=\"center\">ID</td>
<td width=\"100\" align=\"center\">First Name</td>
<td width=\"100\" align=\"center\">Last Name</td>
<td width=\"200\" align=\"center\">E-Mail Adress</td>
<td width=\"100\" align=\"center\">Phone Number</td><tr></table>";
while ($row = mysql_fetch_array($result)) {
echo "<table border=\"0\"><tr>
<td width=\"50\" align=\"center\">" . $row["id"] . "</td>
<td width=\"100\" align=\"center\">" . $row["firstName"] . "</td>
<td width=\"100\" align=\"center\">" . $row["lastName"] . "</td>
<td width=\"200\" align=\"center\">" . $row["email"] . "</td>
<td width=\"100\" align=\"center\">" . $row["phone"] . "</td>
<td width=\"60\" align=\"center\"><a href=./delete.php?id=$id'" . $row["id"] . "'>Delete</a></td>
<td width=\"60\" align=\"center\"><a href=./edit.php?id=$id'" . $row["id"] . "'>Edit</a></td>
<tr></table>";
}
?>
Hierin is dus een delete knop aangemaakt, die verwijst naar delete.php:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$iddel = $_GET['id'];
ini_set ('display_errors', 1);
error_reporting (E_ALL);
$link = mysql_connect("localhost", "root");
mysql_select_db("chapter7");
$sql ="
SELECT *
DELETE FROM phonelist
WHERE id=$iddel";
echo "<!--" . $sql . "-->";
echo "Your record has been deleted";
$result = mysql_query($sql)
?>
$iddel = $_GET['id'];
ini_set ('display_errors', 1);
error_reporting (E_ALL);
$link = mysql_connect("localhost", "root");
mysql_select_db("chapter7");
$sql ="
SELECT *
DELETE FROM phonelist
WHERE id=$iddel";
echo "<!--" . $sql . "-->";
echo "Your record has been deleted";
$result = mysql_query($sql)
?>
Nu zit er vermoedelijk iets fout in de verwijzing naar delete.php of klopt er iets niet in delete.php zelf. Het is de bedoeling dat als je op de deleteknop achter een rij klikt (bijvoorbeeld rij met id 3), dat de gehele rij achter id 3 wordt verwijderd. Zou iemand naar deze code willen kijken?
Groeten,
Jan-Willem
Gewijzigd op 17/03/2011 14:17:51 door Jan Willem de Vogel
foutafhandeling toevoegen
je moet nog een SELECT *
DELETE FROM phonelist
WHERE id=$iddel";
dit klopt niet, het moet het volgende zijn:
$sql ="
DELETE FROM phonelist
WHERE id=$iddel";
Gewijzigd op 21/03/2011 09:51:51 door Jan Willem de Vogel
Maikel B op 17/03/2011 14:47:23:
$sql ="
SELECT *
DELETE FROM phonelist
WHERE id=$iddel";
dit klopt niet, het moet het volgende zijn:
$sql ="
DELETE FROM phonelist
WHERE id=$iddel";
SELECT *
DELETE FROM phonelist
WHERE id=$iddel";
dit klopt niet, het moet het volgende zijn:
$sql ="
DELETE FROM phonelist
WHERE id=$iddel";
kijk nog eens goed naar je query
Aangepast... nog steeds hetzelfde resultaat :(
(while $row = mysql_fetch_array($sql)) // While kan ook if zijn
$sql="DELETE FROM phonelist
WHERE `id`='".$row['iddel']."'";
Als iddel uit een $POST komt:
(while $row = mysql_fetch_array($sql)) // While kan ook if zijn
$sql="DELETE FROM phonelist
WHERE `id`='".$_POST['iddel']."'";
Misschien dat deze voor jou zo werken, ik gebruik ze zelf eigenlijk altijd wel zo..
hoop dat jer iets aan hebt!
Gewijzigd op 21/03/2011 10:47:51 door Jan Willem de Vogel
<a href=./delete.php?id=$id'" . $row["id"] . "'>Delete</a>
dit:
<a href=./delete.php?id=" . $row["id"] . ">Delete</a>
Gewijzigd op 21/03/2011 10:58:48 door Robin Avoort
Jan Willem de Vogel op 21/03/2011 09:51:15:
Doe niet zo eigenwijs en bouw foutcontrole in. Met foutcontrole wordt ook bedoeld: Er staat nog een foutje in de query waardoor MySQL de query gewoon weigert. Je zoekt je een slag in de rondte terwijl het misschien een simpel dingetje is. Echo ook tijdens testen steeds je query even om te checken.Wat betreft foutcontrole; die laat ik er voorlopig even uit, ik ben op dit moment puur en
Quote:
Doe niet zo eigenwijs en bouw foutcontrole in.
Dat is een standaard eigenschap van de nieuwe php'ers -_-'
Google eens op hoe een delete query er uit moet zien, en bouw foutafhandeling in. Mits je google eerder gebruikt had wist je allang wat er fout was, en hoef je niet een onzinnig topic te openen...