Iets delete uit mysql DB met HREF
Ik heb een tabel waar achter elke regel staat: EDIT|DELETE.
Klik ik hierop dan word ik doorgelinked naar een script. Eenmaal als ik op de EDIT|DELETE druk komt er in mijn URL balk het volgende:
Naar mijn kennis neemt de url het ID mee, in dit geval 26.( ik heb dus op DELETE gedrukt!)
Dit is Delete2.php( het script wat het ID 26 zou moeten verwijderen, misschien een raar script maar probeer het een beetje simpel te houden :P)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$username="root";
$password="";
$database="Verzameling";
$con=mysql_connect(localhost,$username,$password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($database, $con);
$ID = $_POST['ID'];
$mysql_query =("DELETE * FROM cds WHERE ID='$ID'") or die ('Error Updating Data! <br />' .mysql_error());
printf("Records deleted: %d\n", mysql_affected_rows());
?>
$username="root";
$password="";
$database="Verzameling";
$con=mysql_connect(localhost,$username,$password);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db($database, $con);
$ID = $_POST['ID'];
$mysql_query =("DELETE * FROM cds WHERE ID='$ID'") or die ('Error Updating Data! <br />' .mysql_error());
printf("Records deleted: %d\n", mysql_affected_rows());
?>
Wat mijn probleem nou is is dat de localhost zegt RECORDS DELETED :1 maar als ik dan naar MYsql ga dan zie ik het ID nog steeds.
moet het niet $_GET['id'] zijn ipv van $_POST ?
Als het ID een int is in de database dan moet je er geen aanhalingstekens omzetten (WHERE ID=$ID ipv WHERE ID='$ID'). En het is geen DELETE * FROM maar gewoon DELETE FROM.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
if(isset($_GET['ID'])){
if(!empty($_GET['id'])){
$sql = mysql_query("DELETE FROM cds WHERE id = '".msql_real_escape_string($_GET['id'])."'");
if(mysql_affected_rows($sql) > 0){
echo 'succesvol verwijderd';
}
}
}
?>
if(isset($_GET['ID'])){
if(!empty($_GET['id'])){
$sql = mysql_query("DELETE FROM cds WHERE id = '".msql_real_escape_string($_GET['id'])."'");
if(mysql_affected_rows($sql) > 0){
echo 'succesvol verwijderd';
}
}
}
?>
dat is een betere manier
ps: kunnen schrijffouten in zitten
Gewijzigd op 19/01/2011 11:24:30 door Teun Hesseling
Hij doet het nu, maar kan iemand mij uitleggen,duidelijk maken waarom ie het niet met mij script deed?
is dit vanwage het IF?
Ohja nu ik toch bezig ben :P
Zou het mogelijk zijn om in dit script een soort warningbutton te maken, waar je JA of NEE kan kiezen als je het geselcteerde ID wil verwijderen. Jullie hoeven niet het script kant en klaar te geve maar een beetje op weg te helpen zou nice zijn!
nogmaals bedankt!
Gewijzigd op 19/01/2011 12:22:11 door lol kid
Teun had dit:
bij jou was mysql_query geen functie maar een variabele.
(Ja Nee gedoe)
google op confirm javascript
bedankt man
je kunt ook dit doen:
Code (php)
iets in die richting kan ook
ps: weet niet zeker of ik dat met die button goed heb geschreven
Gewijzigd op 19/01/2011 16:57:33 door Teun Hesseling
Hier een oplossing...
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
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
<?php
// #########################################################################
function FilterText($str, $advanced=false) {
if($advanced == true){ return mysql_real_escape_string($str); }
$str = mysql_real_escape_string(htmlspecialchars($str));
return $str;
}
// #########################################################################
if($_GET['cataid'] && $rank == "admin"){
$p_id = FilterText($_GET['paginaid']);
$c_id = FilterText($_GET['cataid']);
mysql_query("DELETE FROM cms WHERE pageid = '".$p_id."' LIMIT 1") or die(mysql_error());
$msg = "";
}
// #########################################################################
$getem = mysql_query("SELECT pageid,pagename FROM cms LIMIT 1") or die(mysql_error());
$check = mysql_num_rows($getem);
if($check < 1){
echo "Geen Pagina`s gevonden.";
} else {
if($rank == "admin"){ $delete = "BLABLA"; }
while ($row = mysql_fetch_array($getem, MYSQL_NUM)) {
printf("<a href='index?page=%s'>%s</a> %s",$row[0],$row[1],$delete);
}
// #########################################################################
?>
// #########################################################################
function FilterText($str, $advanced=false) {
if($advanced == true){ return mysql_real_escape_string($str); }
$str = mysql_real_escape_string(htmlspecialchars($str));
return $str;
}
// #########################################################################
if($_GET['cataid'] && $rank == "admin"){
$p_id = FilterText($_GET['paginaid']);
$c_id = FilterText($_GET['cataid']);
mysql_query("DELETE FROM cms WHERE pageid = '".$p_id."' LIMIT 1") or die(mysql_error());
$msg = "";
}
// #########################################################################
$getem = mysql_query("SELECT pageid,pagename FROM cms LIMIT 1") or die(mysql_error());
$check = mysql_num_rows($getem);
if($check < 1){
echo "Geen Pagina`s gevonden.";
} else {
if($rank == "admin"){ $delete = "BLABLA"; }
while ($row = mysql_fetch_array($getem, MYSQL_NUM)) {
printf("<a href='index?page=%s'>%s</a> %s",$row[0],$row[1],$delete);
}
// #########################################################################
?>
Gewijzigd op 19/01/2011 15:45:23 door Marco Bos
Teun Hesseling op 19/01/2011 15:08:08:
Blijft leuk zo'n typo: REQEUST
- SanThe - op 19/01/2011 16:53:12:
Blijft leuk zo'n typo: REQEUST
Teun Hesseling op 19/01/2011 15:08:08:
Blijft leuk zo'n typo: REQEUST
zal het wel even veranderen. was mij nog niet eens opgevallen. merci ;)