Rij deleten informatie uit SQL database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jan Willem de Vogel

Jan Willem de Vogel

17/03/2011 14:09:45
Quote Anchor link
Goedendag,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>"
;
    
}
            

?>


Hierin is dus een delete knop aangemaakt, die verwijst naar delete.php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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)

?>


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
 
PHP hulp

PHP hulp

18/12/2024 04:23:17
 
Vincent Huisman

Vincent Huisman

17/03/2011 14:27:47
Quote Anchor link
je moet nog een foutafhandeling toevoegen
 
Maikel  B

Maikel B

17/03/2011 14:47:23
Quote Anchor link
$sql ="
SELECT *
DELETE FROM phonelist
WHERE id=$iddel";

dit klopt niet, het moet het volgende zijn:

$sql ="
DELETE FROM phonelist
WHERE id=$iddel";
 
Jan Willem de Vogel

Jan Willem de Vogel

21/03/2011 09:51:15
Quote Anchor link
Dank voor de reactie! Ik heb de code verandert zoals aangegeven, maar nog steeds werkt de delete functie niet. Wat betreft foutcontrole; die laat ik er voorlopig even uit, ik ben op dit moment puur en alleen aan het kijken naar de delete functionaliteit. Heeft iemand enig idee waar de fout nu nog kan zitten?
Gewijzigd op 21/03/2011 09:51:51 door Jan Willem de Vogel
 
Tim Fendt

Tim Fendt

21/03/2011 09:54:39
Quote Anchor link
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";


kijk nog eens goed naar je query
 
Jan Willem de Vogel

Jan Willem de Vogel

21/03/2011 09:57:10
Quote Anchor link
Aangepast... nog steeds hetzelfde resultaat :(
 
Wijnand H

Wijnand H

21/03/2011 10:23:12
Quote Anchor link
Als iddel uit de database komt:
(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!
 
Jan Willem de Vogel

Jan Willem de Vogel

21/03/2011 10:44:53
Quote Anchor link
Ik snap er op dit moment weinig meer van. Wat het doel is om informatie uit mijn database (met velden als id, namen etc) te laten verwijderen door op een deleteknop te klikken. Ik heb het idee dat de fout zit in de verwijzing in index.php naar delete.php en de hierbij gebruikte variabelen. De bedoeling is dus: delete alle informatie in een rij met een bepaald idnummer, dat is dus 'id'. 'iddel' het is als verwijzing gebruik aan het begin van delete.php: $iddel = $_GET['id']; ID is dus opgeslagen in een database; 'iddel' niet.
Gewijzigd op 21/03/2011 10:47:51 door Jan Willem de Vogel
 
Robin Avoort

Robin Avoort

21/03/2011 10:52:21
Quote Anchor link
maak van:
<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
 
John D

John D

21/03/2011 11:00:26
Quote Anchor link
Jan Willem de Vogel op 21/03/2011 09:51:15:
Wat betreft foutcontrole; die laat ik er voorlopig even uit, ik ben op dit moment puur en
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.
 
Milo S

Milo S

21/03/2011 18:05:33
Quote Anchor link
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...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.