12. januar 2016 - 22:09
Der er
14 kommentarer og 1 løsning
html delete form
Hejsa Det er vel virkelig enkelt, men jeg kan simplethen ikke finde ud af det. Jeg har en MySQL Database med følgende columns og values. id er Primary Key: id age 1 20 2 38 3 56 Jeg vil gerne have lavet en knap, så jeg kan slette hele mit table. Jeg har prøvet at lave følgende: index.html: <form method = "post" action = "delete.php"> <input name="delete" type="submit" id="delete" value="Delete"> </form> delete.php: <?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); //include('session.php'); // Selecting Database include 'dbconfic.inc.php'; $query = ("DELETE FROM numbertable"); Jeg er virkelig så meget i tvivl om hvordan jeg får min knap aktiveret, så den henviser til min delete.php og SQL Query bliver eksekveret. Er der nogle som har en ide til det?
Annonceindlæg fra Novataris
Vejen til devops med Bavarian Nordic
Bavarian Nordics vækst blev starten på et DevOps-samarbejde med Novataris for hurtigt at kunne tilpasse IT-organisation til forretningen.
7. december 2023
12. januar 2016 - 22:21
#1
Der kan være flere ting galt, når du ikke viser al kode. Måske.... 1) Den <form> du viser, er inde i en anden <form> - det kan man ikke 2) Din $query = ("DELETE FROM numbertable"); skal nok være: $query = "DELETE FROM numbertable"; men vigtigst: bliver den udført bagefter? Og pas på: nu kan alle gætte sig til delete.php, og slette når de vil.
12. januar 2016 - 22:26
#2
tak for svaret. min html form er bare inde i et div tag <div> <form method = "post" action = "delete.php"> <input name="delete" type="submit" id="delete" value="Delete"> </form> </div> Det vil sige min html form er ok? Hvad tænker du med at de kan slette delete.php?
12. januar 2016 - 22:30
#3
Query bliver ikke udført. Jeg får en hvid side, og når jeg går tilbage og opdatere er min tal ikke væk, og heller ikke i databasen
12. januar 2016 - 22:33
#4
Er det ikke bedst at programmere sine sider i objektorienteret programmering med preparestatment imod sql injektion istedet for det gamle det bliver vidst ikke brugt så meget mere?
12. januar 2016 - 22:48
#5
Start med at indsætte Echo("herre we are"); Eller et eller andet der kan overbevise dig om at delete.php kaldes som den skal. Dernæst: Det ser ikke ud til at $auery bruges dvs der udføres ingenting med databasen.
12. januar 2016 - 22:50
#6
...og til mig selv: skriv ikke på ipad i sengen. For mange typos. Sorry
12. januar 2016 - 23:00
#7
tak for svaret Acore. Here we are kommer op, når jeg trykker på delete :)
13. januar 2016 - 06:33
#8
Ok. Så virker formen. Men mangler du ikke et databasekald med $query som argument?
13. januar 2016 - 08:08
#9
Det kunne være mysql_query($query); men kommer an på hvilket interface til mysql du anvender.
13. januar 2016 - 10:32
#10
Tak for svaret. Jeg prøver lige at kigge på det når jeg kommer hjem fra arbejde
13. januar 2016 - 10:42
#11
Tænker du på $stmt->execute(); ?
13. januar 2016 - 11:48
#12
Måske - uden at det ser helt rigtigt ud - der mangler fx noget, der binder $query til eksekveringen af sqk-kaldet, men da jeg ikke kender den bagved-liggende kode - fx dbconfic.inc.php er det svært at svare på.
13. januar 2016 - 20:26
#13
Det kan jeg egentligt godt forstå :-) Min connection ser sådan ud: <?php $db_host = "localhost"; $db_user = "root"; $db_pass = "root"; $db_name = "roulette_db"; // connection: $mysqli = new mysqli($db_host, $db_user, $db_pass , $db_name); // tjek conenction: if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); } // vi kører utf-8 på connection: $mysqli->set_charset("utf-8"); ?> Jeg prøvede med et select statement, og det virker helt fint. Så det er nok noget med det du siger. Dette virker fint: <?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); //include('session.php'); // Selecting Database include 'dbconfic.inc.php'; $stmt = $mysqli->prepare("SELECT * FROM numbertable") or die($mysqli->error); // execute prepared statement $stmt->execute(); // gør variabler klar: $number = null; $n_id = null; /* bind result variabler */ $stmt->bind_result($n_id, $number); /* fetch values for hver row, her kun 1 row dog: */ while ($stmt->fetch()) { printf($n_id,$number); } // luk statement $stmt->close(); // luk connection $mysqli->close(); ?>
13. januar 2016 - 20:30
#14
Det var det du sagde :-) Ligger du et svar og mange tak for hjælpen. <?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); //include('session.php'); // Selecting Database include 'dbconfic.inc.php'; $stmt = $mysqli->prepare("DELETE FROM numbertable") or die($mysqli->error); // execute prepared statement $stmt->execute(); // luk statement $stmt->close(); // luk connection $mysqli->close(); ?>
13. januar 2016 - 22:06
#15
Godt du fik det løst :)
Vi tilbyder markedets bedste kurser inden for webudvikling