Mysql table row verwijderen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Geachte mede Tweakers,

Ik ben bezig een code aan het schrijven waarmee ik gegevens in een database kan zetten en deze gegevens daarna uit kan lezen in m'n browser. Dit gedeelte lukt prima, echter wil ik bij iedere rij een knop hebben, zodra je op deze knop drukt moet de desbetreffende rij verwijdert worden uit de database.

Eerst even mijn code (wat ik tot nu toe heb):

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
43
44
45
46
47
48
49
50
51
52
<form action="<?=$_SERVER['PHP_SELF']?>" method="post">
Voeg een bedrijf toe:<br>
<input type="text" name="bedrijven" style="width: 150px"><br><br>
<input name="opslaan" type="submit" value="Bedrijf toevoegen" />
</form>

<?php 
mysql_connect('***','***','***'); 
mysql_select_db('***') or die (mysql_error()); 

if(isset($_POST['opslaan'])) 
  {  
    $sbedrijven      =    addslashes($_POST['bedrijven']); 
    
    mysql_query("INSERT INTO gegevens (bedrijven) VALUES ('".$sbedrijven."')") or die (mysql_error()); 

    echo 'Bedrijf succesvol toegevoegd!'; 
  } 
else 
  { 
  }
?> 

<?php
mysql_connect("***", "***", "***") or die(mysql_error()); 
mysql_select_db("***") or die(mysql_error()); 

$result = mysql_query("SELECT * FROM gegevens") 
or die(mysql_error()); 

$delete = mysql_query("DELETE FROM gegevens") 
or die(mysql_error()); 

    echo "<table border='0' class='sortable' text-align='left'>"; 
    echo "<tr> <td width='100'><b></td>";
    echo "<td></td></tr>"; 

while($row = mysql_fetch_array( $result )) { 

$bedrijven = $row['bedrijven'];
$delete = '<a href="toevoegen_gegevens.php" action="delete"><img src="../delete.jpg" width="20" height="20" border="0"></a>';

    echo "<tr><td>";
    echo $bedrijven;
    echo "</td>";
    
    echo "<td>";
    echo $delete;
    echo "</td></tr>";
} 
    echo "</table>"; 
?>

Met deze code loop ik tegen een probleem op, ik hoop dat iemand me met dit probleem kan helpen:
Zodra ik het onderstaand stukje code niet gebruik, dan kan ik zonder problemen nieuwe bedrijven toevoegen aan de database tabel. Zodra ik de code wel gebruik kun je maar één bedrijf toevoegen, wanneer je daarna nog een bedrijf toevoegt wordt het eerder toegevoegde bedrijf overschreven door de nieuwe.

$delete = mysql_query("DELETE FROM gegevens")
or die(mysql_error());

Hoe zorg ik er voor dat alles wat je invoert gewoon wordt opgeslagen in de tabel en dat de gegevens niet worden overschreven?

Zodra dit probleem is opgelost, kan iemand mij dan zeggen hoe ik er voor zorg dat je gegevens per rij kunt verwijderen? Ik heb al lopen googelen maar zonder resultaat.

Alvast bedankt!

[ Voor 0% gewijzigd door RobIII op 13-04-2010 14:40 . Reden: Code tags toegevoegd. ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je code post, gebruik dan code tags a.u.b.

Verder lijkt het me heeeel verstandig als je even de basics (insert/update/delete, WHERE clauses etc.) van SQL gaat doornemen en je verdiept in control structures in PHP...
Verwijderd schreef op dinsdag 13 april 2010 @ 14:29:
Zodra dit probleem is opgelost, kan iemand mij dan zeggen hoe ik er voor zorg dat je gegevens per rij kunt verwijderen? Ik heb al lopen googelen maar zonder resultaat.
Euh; nee. Daarvoor zul je eerst zelf de basics moeten beheren. We zitten hier niet om handjes vast te houden of "op maat lessen" te geven.

[ Voor 53% gewijzigd door RobIII op 13-04-2010 14:45 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • roy-t
  • Registratie: Oktober 2004
  • Laatst online: 10:19
Het lijkt erop alsof je delete altijd wordt uitgevoerd, zorg er eens voor dat je apparte functies maakt en deze alleen aanroept bij speciale condities (bijvoorbeeld als er op de delete knop wordt gedrukt).

Verder is je delete niet conditional, je moet een WHERE toevoegen met daarin een clausule waarin je naar het te verwijderen record verwijst.

[ Voor 25% gewijzigd door roy-t op 13-04-2010 14:45 ]

~ Mijn prog blog!


Acties:
  • 0 Henk 'm!

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

Keys of rownumbers.
In combinatie met wat hierboven staat moet je nu meer dan genoeg hebben om je probleem op te lossen ;)

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt voor jullie reacties, ga er mee aan de slag! Post wel weer zodra het gelukt is!
Allen bedankt!

Acties:
  • 0 Henk 'm!

  • cariolive23
  • Registratie: Januari 2007
  • Laatst online: 18-10-2024
addslashes ? Dat stamt nog uit de vorige eeuw, vandaag de dag mag je er voor zorgen dat magic_quotes uitstaan en dat je met mysql_real_escape_string() jouw input gaat beveiligen. Dan verknal je jouw data ook niet meer met slashes én heb je geen last van SQL injection.

Acties:
  • 0 Henk 'm!

  • Guillome
  • Registratie: Januari 2001
  • Niet online

Guillome

test

Geef of een normaal antwoord, of plaats een TR.

[ Voor 90% gewijzigd door Creepy op 16-04-2010 15:12 ]

If then else matters! - I5 12600KF, Asus Tuf GT501, Asus Tuf OC 3080, Asus Tuf Gaming H670 Pro, 48GB, Corsair RM850X PSU, SN850 1TB, Arctic Liquid Freezer 280, ASUS RT-AX1800U router


Acties:
  • 0 Henk 'm!

  • nota
  • Registratie: Augustus 2001
  • Laatst online: 12-08 08:52
waarom rij 19, 20 & 21? Deze lijken me nogal overbodig...

If you think sex is a pain in the ass, try different position


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ga er mee aan de gang, ben nog niet zo heel lang bezig met PHP, vandaar dat mijn code er 'amateuristisch' uitziet. Bedankt voor jullie tips en ga er mee aan de slag!

Acties:
  • 0 Henk 'm!

  • DeNB3rt
  • Registratie: September 2002
  • Laatst online: 28-04 20:05
een delete hoeft toch niet?
Je kan de row updaten en daar een flagActif op false zetten :)

Acties:
  • 0 Henk 'm!

  • Davio
  • Registratie: November 2007
  • Laatst online: 06-01 16:46
Verder is het aan te bevelen om zelf wat library functies te schrijven voor je database-interactie.

Want stel nou dat je een andere database gaat gebruiken of de mysqli library ipv mysql?

Acties:
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Security tip: $_SERVER['PHP_SELF'] bevat user input en mag je niet op deze manier rechtstreeks in je html zetten.

{signature}

Pagina: 1