Avatar billede dotcom1 Nybegynder
12. september 2005 - 23:07 Der er 9 kommentarer og
2 løsninger

Slette i MySQL

Hvorfor virker dette script ikke? Får ingen fejl, men der slettes ikke noget i databasen.

<?php
if ($submit) {
    mysql_query("DELETE FROM downloads WHERE id='$ID'") or die (mysql_error());
    echo "<script> alert('slettet!'); </script>";
}
?>

<form name="form" action="<?=$PHP_SELF;?>" method="post" OnSubmit="return confirm('Er du sikker på, at du vil slette?');">
<table width="400" border="1" cellspacing="0" cellpadding="2">
<?php
// Connect to db
include($_SERVER['DOCUMENT_ROOT']."/sql.php");
$query = mysql_query("SELECT * FROM downloads ORDER BY ID ASC");
$antal = mysql_num_rows($query);
while($row = mysql_fetch_array($query)) {
?>
    <tr>
        <td><input type="radio" name="id" value="<?=$row['ID'];?>">
        <td><?=$row['titel'];?></td>
    </tr>
<?php
}
?>
</table>
<br>
<input type="submit" name="submit" value="  slet  ">
</form>
Avatar billede jaw Nybegynder
12. september 2005 - 23:13 #1
Prøv:
mysql_query("DELETE FROM downloads WHERE id='$id") or die (mysql_error());

Og hvis det skal være helt korrekt syntax, så bør du bestemt vende dig til at bruge $_POST[], $_GET[] etc.
Avatar billede nielle Nybegynder
12. september 2005 - 23:15 #2
Knappen bør ikke hedde "submit:"

<form name="form" action="<?=$PHP_SELF;?>" method="post" OnSubmit="return confirm('Er du sikker på, at du vil slette?');">
<table width="400" border="1" cellspacing="0" cellpadding="2">
<?php
// Connect to db
include($_SERVER['DOCUMENT_ROOT']."/sql.php");
$query = mysql_query("SELECT * FROM downloads ORDER BY ID ASC");
$antal = mysql_num_rows($query);
while($row = mysql_fetch_array($query)) {
?>
    <tr>
        <td><input type="radio" name="id" value="<?=$row['ID'];?>">
        <td><?=$row['titel'];?></td>
    </tr>
<?php
}
?>
</table>
<br>
<input type="submit" name="submitKnap" value="  slet  ">
</form>

- og:

<?php
if (isset($_POST["submitKnap"]))
{
    mysql_query("DELETE FROM downloads WHERE id='$ID'") or die(mysql_error());
    echo "<script> alert('slettet!'); </script>";
}
?>
Avatar billede dotcom1 Nybegynder
12. september 2005 - 23:25 #3
Hej. Jeg har prøvet begge jeres forslag, men der slettes stadig ikke noget. Prøvede med en
mysql_query("DELETE FROM downloads WHERE id = '" . $_GET['id'] . "'") or die (mysql_error());
- men det hjalp heller ikke.
Avatar billede jaw Nybegynder
12. september 2005 - 23:26 #4
Det skal så i hvert fald også være $_POST['id']. Har du prøvet at undersøge, om $_POST['id'] overhovedet indeholder det du tror? F.eks. med echo $_POST['id'];
Avatar billede dotcom1 Nybegynder
12. september 2005 - 23:40 #5
Jeg får syntaks-fejl ved denne query:
mysql_query("DELETE FROM downloads WHERE WHERE ID = '" . $_POST['id'] . "'") or die (mysql_error());

...near 'WHERE ID = ''' at line 1
Avatar billede dotcom1 Nybegynder
12. september 2005 - 23:41 #6
Min tabel ser sådan ud:
CREATE TABLE `downloads` (
  `ID` tinyint(4) NOT NULL auto_increment,
  `name` varchar(255) NOT NULL default '0',
  `titel` text NOT NULL,
  `keywords` text NOT NULL,
  `kategori` varchar(255) NOT NULL default '0',
  `downloads` int(4) NOT NULL default '0',
  `date` date NOT NULL default '0000-00-00',
  PRIMARY KEY  (`ID`)
) TYPE=MyISAM AUTO_INCREMENT=54 ;
Avatar billede dotcom1 Nybegynder
12. september 2005 - 23:51 #7
Okay, havde WHERE to gange... Men den sletter stadig intet.
Avatar billede dotcom1 Nybegynder
13. september 2005 - 00:16 #8
Det virker faktisk nu. :) Eneste lille ting er, når en ting er slettet, så ser formateringen lidt anderledes ud på siden. Fontstørrelsen er ændret. Hvad kan det skyldes?
Avatar billede dotcom1 Nybegynder
13. september 2005 - 12:17 #9
Det var af en eller anden grund echo "<script> alert('slettet!'); </script>"; der ændrede på layoutet. Jeg vil gerne lukke spørgsmålet. Læg et svar, jaw og nielle.
Avatar billede jaw Nybegynder
13. september 2005 - 15:45 #10
Oki :)
Avatar billede nielle Nybegynder
13. september 2005 - 18:27 #11
Svar :^)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester