Deleten van berichten
gastenboek.php:
(uiteraard niet de hele code, enkel het deel waarin de informatie wordt getoond)
<div class="author">
</div>
<div class="italic">
</div>
Code (php)
<div class="text">
</div>
delete.php
Code (php)
1
2
3
2
3
<?php
mysql_query("DELETE FROM `b17_3204141_post`.`post` WHERE `post`.`ID` = $_POST['id'] LIMIT 1");
?>
mysql_query("DELETE FROM `b17_3204141_post`.`post` WHERE `post`.`ID` = $_POST['id'] LIMIT 1");
?>
Gewijzigd op 01/01/1970 01:00:00 door Victor-Jan Goemans
Nou leuk dat je het even meldt.
Wat ben je nou bijdehand aan het doen? Ik stel toch gewoon een vraag?
Vindt dit ook een beetje rare opmerking..
Goemans schreef op 11.04.2009 18:36:
Wat ben je nou bijdehand aan het doen? Ik stel toch gewoon een vraag?
Sorry hoor. Maar er staat echt geen vraag in. 'Als ik op DEL klik gebeurt er niks' is een mededeling en geen vraag. Hoe duidelijker jij het probleem omschrijft en hoe helderder de bijbehorende vraag, hoe sneller je een antwoord hebt.
Hoe kan ik ervoor zorgen dat de juiste post gedeleted wordt wanneer ik op DEL klik (wat nu niet het geval is)?
Zo goed?...
Sorry, hulp verwijderd, moet je maar respect tonen
Mocht je de hulp alsnog hebben gelezen,,
Laat maar,, zoek het verder maar uit,, k hoef je nieteens meer te helpen
Gewijzigd op 01/01/1970 01:00:00 door Nicoow Unknown
Goemans schreef op 11.04.2009 18:47:
Dit is belachelijk. Oké. Even in vraagvorm gieten voor mensen met een IQ beneden de 4,5.
Succes verder.
Bedankt! :D
delete.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if( !empty($_GET['id']) && ctype_digit((string)$_GET['id']) )
{
$sQry = 'DELETE FROM tabel WHERE id = ' . (int)$_GET['id'];
mysql_query($sQry);
}
?>
if( !empty($_GET['id']) && ctype_digit((string)$_GET['id']) )
{
$sQry = 'DELETE FROM tabel WHERE id = ' . (int)$_GET['id'];
mysql_query($sQry);
}
?>
Het script roep je dan op deze manier aan:
delete.php?id=123
Houd er wel rekening mee dat nu iedereen zomaar een bericht kan verwijderen.
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
Martijn; van een getal een string maken en vervolgens checken of het een getal is... om het daarna om te zetten naar een getal. Wtf?!?
SanThe, waarom? Gewoon leuk :p
2: Gebruik geen backtics. Nergens voor nodig, geef mij 1 goede reden!!
3: Gebruik geen POST, maar een GET. Dus gewoon via de url.
4: Controleer of de waarde in de POST (wat straks dus een GET wordt), wel een integer is etc, ctype_digit().
5: Gebruik een if() statement, voor een bevestiging, is veel handiger.
6: Gebruik de tabs en enters op een goede manier!
7: Succes met al het bovenstaande.
8: Lees topic SanThe, waarom? Blijft leuk :p
1: Lees topic 2: Gebruik geen backtics. Nergens voor nodig, geef mij 1 goede reden!!
3: Gebruik geen POST, maar een GET. Dus gewoon via de url.
4: Controleer of de waarde in de POST (wat straks dus een GET wordt), wel een integer is etc, ctype_digit().
5: Gebruik een if() statement, voor een bevestiging, is veel handiger.
6: Gebruik de tabs en enters op een goede manier!
7: Succes met al het bovenstaande.
8: Lees topic SanThe, waarom? Blijft leuk :p
Martijn! schreef op 11.04.2009 19:57:
Om een bepaald bericht uit de database te verwijderen heb je geen formulier nodig. Je zou je script op deze manier kunnen maken:
delete.php
Het script roep je dan op deze manier aan:
delete.php?id=123
Houd er wel rekening mee dat nu iedereen zomaar een bericht kan verwijderen.
delete.php
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
if( !empty($_GET['id']) && ctype_digit((string)$_GET['id']) )
{
$sQry = 'DELETE FROM tabel WHERE id = ' . (int)$_GET['id'];
mysql_query($sQry);
}
?>
if( !empty($_GET['id']) && ctype_digit((string)$_GET['id']) )
{
$sQry = 'DELETE FROM tabel WHERE id = ' . (int)$_GET['id'];
mysql_query($sQry);
}
?>
Het script roep je dan op deze manier aan:
delete.php?id=123
Houd er wel rekening mee dat nu iedereen zomaar een bericht kan verwijderen.
Maar de hele bedoeling is juist dat het automatisch gebeurt. Dus dat er bij elk bericht een link waarmee dàt bericht verwijderd kan worden. Toch bedankt :)
Zet bij elk bericht een link naar delete.php?id=id_van_bericht en het wordt 'automatisch' voor je gedaan ^^.
Gewijzigd op 01/01/1970 01:00:00 door Victor-Jan Goemans
1) stripslashes() heb je alleen nodig wanneer je jezelf een oor hebt aangenaaid en eerst geheel ten onrechte overbodige slashes in je content zet. Laat die onzin weg en je hebt geen stripslashes() meer nodig.
2) Backticks ` zorgen voor bugs in je SQL, wil je bugs of niet? Zo ja, ga gerust verder met deze onzin, maar ga niet klagen dat jouw SQL niet doet wat het moet doen. Daar kies je zelf voor.
3) echo en print zijn geen functies, je hebt dus geen haakjes () nodig.
4) wees consistent en gebruik óf echo óf print. Maar niet de ene keer echo en de andere keer print, de code wordt een bende.
5) Geen LIMIT in een UPDATE of DELETE-query gebruiken, je wilt alle records verwijderen die aan de voorwaarden voldoen en niet lukraak een X-aantal records. Dan weet je niet wat nu wel en wat nu niet is verwijderd.
6) echo met enkele quotes ', dan hoef je niet keer op keer de dubbele quotes " in de html te escapen. Scheelt je hoop extra werk, tikfouten en bugs.
7) Ga niet janken wanneer iemand in een bijdehante bui een opmerking op jouw niveau maakt. Geen vraag, geen antwoord, dat is niets bijzonders. Jij zoekt hulp, dus moet jij er voor zorgen dat je duidelijk bent.
Sterkte.
Het id staat neem ik aan gewoon in je database en dus ook in $output (tenzij je die niet in de select hebt staan). Stuur die dus mee in je link naar de delete pagina zoals ik hiervoor heb beschreven ^^. "id_van_bericht" moet je nog wel vervangen door het id dat in $output staat, maar dat moet toch geen probleem zijn?
nico schreef op 11.04.2009 18:48:
Met mensen als jou, redden wij het wel :') :p//
Sorry, hulp verwijderd, moet je maar respect tonen
Mocht je de hulp alsnog hebben gelezen,,
Laat maar,, zoek het verder maar uit,, k hoef je nieteens meer te helpen
Sorry, hulp verwijderd, moet je maar respect tonen
Mocht je de hulp alsnog hebben gelezen,,
Laat maar,, zoek het verder maar uit,, k hoef je nieteens meer te helpen
Dennis Mertens schreef op 12.04.2009 15:23:
nico schreef op 11.04.2009 18:48:
Met mensen als jou, redden wij het wel :') :p//
Sorry, hulp verwijderd, moet je maar respect tonen
Mocht je de hulp alsnog hebben gelezen,,
Laat maar,, zoek het verder maar uit,, k hoef je nieteens meer te helpen
Sorry, hulp verwijderd, moet je maar respect tonen
Mocht je de hulp alsnog hebben gelezen,,
Laat maar,, zoek het verder maar uit,, k hoef je nieteens meer te helpen
Ben het eens met Dennis. Respect moet van twee kanten komen. Als iemand je in je vrije tijd wilt helpen en die gene verdiend het niet...
Waarom ik wel geholpen heb? Geen idee, waarschijnlijk gisteren zijn laatste berichtje gelezen en meteen geantwooord zonder verder te kijken. Heeft nu geen zin meer om het weg te halen...
Maar goed, dat zal ook wel de reden zijn dat deze site lang zo populair niet is als phpfreakz...
SanThe schreef op 11.04.2009 18:45:
Sorry hoor. Maar er staat echt geen vraag in. 'Als ik op DEL klik gebeurt er niks' is een mededeling en geen vraag. Hoe duidelijker jij het probleem omschrijft en hoe helderder de bijbehorende vraag, hoe sneller je een antwoord hebt.
Goemans schreef op 11.04.2009 18:36:
Wat ben je nou bijdehand aan het doen? Ik stel toch gewoon een vraag?
Sorry hoor. Maar er staat echt geen vraag in. 'Als ik op DEL klik gebeurt er niks' is een mededeling en geen vraag. Hoe duidelijker jij het probleem omschrijft en hoe helderder de bijbehorende vraag, hoe sneller je een antwoord hebt.
Voor de liefhebbers: Ik heb alleen getracht om de TS duidelijk te maken dat het stellen van een duidelijke vraag en een duidelijke omschrijving van het probleem, in het algemeen een sneller en doeltreffender antwoord oplevert. Helaas is dat in het verkeerde keelgat geschoten. Heb je nog vragen over 'vraag' klik dan hier en lees dat eens door.
SanThe.