Avatar billede aagren Nybegynder
10. april 2003 - 19:16 Der er 28 kommentarer og
1 løsning

delete

Jeg har et problem med at få den til at slette data fra min database. Er der nogen eller en der kan hjælpe mig med at lave den korrekt - også gerne med lidt forklaring? Jeg har følgende 2 filer:

//indsendte_opskrifter_selected.php

<?php
include_once ("..//database.inc.php");
$selectSQL = "SELECT *
          FROM indsendte_opskrifter WHERE opskriftnavn = '".$_GET['navn']."'";


$selectResult = mysql_query($selectSQL);

?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>Indsendte opskrifter</title>
</head>
<body>
<h1> Indsendte opskrifter</h1>

<table width="100%" cellpadding="2" cellspacing="0">
  <?php
while ($select = mysql_fetch_array($selectResult)){

?>
<form action="indsendte_opskrifter_delete.php" method="post">
  <tr>
    <td>Id: </td>
    <td><?php echo $select[id]; ?></td>
  </tr>
  <tr>
    <td><?php echo $select[opskriftnavn]; ?></td>
  </tr>
  <tr>
    <td>Ingredienser:</td>
  </tr>
  <tr>
    <td>
        <?php echo $select[ingredienser]; ?>
    </td>
  </tr>
  <tr>
    <td>Fremgangsmåde:</td>
  </tr>
  <tr>
    <td><?php echo $select[fremgangsmaade]; ?></td>
  </tr>
  <tr>
    <td width="10%">Indsendt af:</td>
    <td width="20%"><?php echo $select[indsendt_af]; ?></td>
  </tr>
  <tr>
    <td><input type="submit" value"slet" name="submit"></td>
  </tr>
  <?php
}
?>

</table>
</form>
</body>
</html>




//indsendte_opskrifter_delete.php


<?php
include_once ("..//database.inc.php");

$id = $_POST["id"];
$opskriftnavn = $_POST["opskriftnavn"];
$ingredienser = $_POST["ingredienser"];
$fremgangsmaade = $_POST["fremgangsmaade"];
$indsendt_af = $_POST["indsendt_af"];

$deleteSQL = "DELETE FROM indsendte_opskrifter
            WHERE $id = id";

// debug sql:
echo $deleteSQL;

if(mysql_query($deleteSQL)){
echo $message = "Data er slettet!";
}
else {
  echo $message = "Data er IKKE slettet";  //DEN HER MEDDELSE BLIVER SKREVET UD
  }

?>

<html>
<head>
      <title>slettet data fra indsendte opskrifter</title>
</head>
<body>
      <h1>Slettet data</h1>
      <?php echo $message; ?><br/>
      <a href="indsendte_opskrifter_selected.php"></a>

</body>
</html>
Avatar billede hmm10 Nybegynder
10. april 2003 - 19:18 #1
$deleteSQL = "DELETE FROM indsendte_opskrifter WHERE $id = id";
??

Hedder det ikke:
$deleteSQL = "DELETE * FROM ´indsendte_opskrifter` WHERE `id` = $id "; ??
Avatar billede ahv Nybegynder
10. april 2003 - 19:19 #2
$deleteSQL = "DELETE FROM indsendte_opskrifter WHERE id = '$id'";
Avatar billede mjl Nybegynder
10. april 2003 - 19:19 #3
WHERE $id = id";
Prøv med WHERE $id = 'id'";
Avatar billede mjl Nybegynder
10. april 2003 - 19:19 #4
Argh... he he - lidt for sen!!!!
Avatar billede hmm10 Nybegynder
10. april 2003 - 19:20 #5
Jammen, det er da godt at vi er enige ;)
Avatar billede mjl Nybegynder
10. april 2003 - 19:20 #6
Du skal ha' " " omkring din id
Avatar billede mjl Nybegynder
10. april 2003 - 19:20 #7
Ja for søren :o)
Avatar billede hmm10 Nybegynder
10. april 2003 - 19:22 #8
hmm, jeg prøver igen:
$deleteSQL = "DELETE * FROM `indsendte_opskrifter` WHERE `id` = '$id' ";
Avatar billede mjl Nybegynder
10. april 2003 - 19:24 #9
Dette er fint:

$deleteSQL = "DELETE FROM indsendte_opskrifter
            WHERE id = '$id'";
Avatar billede mjl Nybegynder
10. april 2003 - 19:25 #10
indsendte_opskrifter og id, skal ikke ha' '' - kun '$id'
Avatar billede ahv Nybegynder
10. april 2003 - 19:26 #11
hmm10>> Den * behøver ikke være der.
Avatar billede the_wanderer Nybegynder
10. april 2003 - 19:26 #12
man kan sagtens ha' '' rundt om indsendte_opskrifter of id.. men det er ikke nødvendigt ;)
Avatar billede hmm10 Nybegynder
10. april 2003 - 19:27 #13
mjl >> Hvem siger det?
`` ikke ''. Bruges til at vise hvilke værdier der hentes fra SQL..
Avatar billede hmm10 Nybegynder
10. april 2003 - 19:27 #14
ahv >> smag og behag: "Slet fra" eler "slet ALT fra".. ;)
Avatar billede schaefner Juniormester
10. april 2003 - 19:28 #15
mysql_query("DELETE FROM indsendte_opskrifter WHERE id = $id");
Avatar billede the_wanderer Nybegynder
10. april 2003 - 19:28 #16
ups.. det var det jeg mente ;)
Avatar billede erikjacobsen Ekspert
10. april 2003 - 19:28 #17
Din <form> er helt forkert
Avatar billede hmm10 Nybegynder
10. april 2003 - 19:29 #18
the_wanderer >> :)
Avatar billede schaefner Juniormester
10. april 2003 - 19:32 #19
Men skal:
<td><?php echo $select[id]; ?></td>

Ikke nærmere være:
<td><input type="text" name="id" value="<?php echo $select[id]; ?>"></td>

Og det samme med de andre. Hvis det skal virke som jeg tror du ønsker.
Avatar billede aagren Nybegynder
10. april 2003 - 19:37 #20
Uha...sikke alle de kommentarer.

Men ja, jeg fandt også ud af at det skulle ændres til:
$deleteSQL = "DELETE FROM indsendte_opskrifter
            WHERE id = '$id'";

Og jeg får ingen fejl meddelser - men der bliver ikke slettet noget. Hvad er det så galt?
Avatar billede ahv Nybegynder
10. april 2003 - 19:39 #21
$deleteSQL = "DELETE FROM indsendte_opskrifter WHERE id = '$_POST[id]'";

også skal din form også rettes som de andre har kommenteret.
Avatar billede aagren Nybegynder
10. april 2003 - 19:42 #22
Min form - skal op før table starter, ikk? Ja, jeg er ikke en haj til det her, men håber jeg bliver. Jeg er nemlig ved at lave projekt :)
Avatar billede aagren Nybegynder
10. april 2003 - 19:46 #23
Men......der er stadig ikke noget der bliver slettet fra databasen :(
Avatar billede erikjacobsen Ekspert
10. april 2003 - 19:54 #24
Du skal have én form pr post. På den måde du gør det.
Avatar billede schaefner Juniormester
10. april 2003 - 20:00 #25
<?php
include_once ("..//database.inc.php");
$selectResult = mysql_query("SELECT * FROM indsendte_opskrifter WHERE opskriftnavn = '$_GET[navn]'");
?>
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
      <title>Indsendte opskrifter</title>
</head>
<body>
<h1> Indsendte opskrifter</h1>
<?php
while ($select = mysql_fetch_array($selectResult)){
?>
<table width="100%" cellpadding="2" cellspacing="0">
  <tr>
    <td>Id: </td>
    <td><? echo "$select[id]"; ?></td>
  </tr>
  <tr>
    <td><?php echo "$select[opskriftnavn]"; ?></td>
  </tr>
  <tr>
    <td>Ingredienser:</td>
  </tr>
  <tr>
    <td><?php echo "$select[ingredienser]"; ?></td>
  </tr>
  <tr>
    <td>Fremgangsmåde:</td>
  </tr>
  <tr>
    <td><?php echo "$select[fremgangsmaade]"; ?></td>
  </tr>
  <tr>
    <td width="10%">Indsendt af:</td>
    <td width="20%"><?php echo "$select[indsendt_af]"; ?></td>
  </tr>
  <tr>
    <td colspan="2"><?php echo "<a href=\"indsendte_opskrifter_delete.php?id=$select[id]\">Slet opskrift</a>"; ?></td>
  </tr>
</table>
<?php
}
?>

</body>
</html>



--- indsendte_opskrifter_delete.php ---


<?php
include_once ("..//database.inc.php");
$id = $_GET['id'];

$delete = mysql_query("DELETE FROM indsendte_opskrifter WHERE id = $id");
if(mysql_query($delete)){
    echo $message = "Data er slettet!";
} else {
    echo $message = "Data er IKKE slettet";  //DEN HER MEDDELSE BLIVER SKREVET UD
}
?>

<html>
<head>
<title>slettet data fra indsendte opskrifter</title>
</head>
<body>

<h1>Slettet data</h1>
<?php echo $message; ?><br/>
<a href="indsendte_opskrifter_selected.php"></a>

</body>
</html>
Avatar billede schaefner Juniormester
10. april 2003 - 20:01 #26
echo $message = "Data er slettet!";
} else {
    echo $message = "Data er IKKE slettet";
}

Skal lige være:

    $message = "Data er slettet!";
} else {
    $message = "Data er IKKE slettet";
}
Avatar billede aagren Nybegynder
10. april 2003 - 20:15 #27
schaefner har fat i noget.....gi'r du et svar, så du kan få points?
Det eneste.........jeg har lavet om er:

if(!mysql_query($delete)){
    $message = "Data er slettet!";
} else {
    $message = "Data er IKKE slettet";
}

For ellers får man den en forkert meddellelse
Avatar billede schaefner Juniormester
10. april 2003 - 20:16 #28
Virker det?
Avatar billede aagren Nybegynder
10. april 2003 - 20:20 #29
Nu kan jeg slette lige så tosset jeg vil :)
Mange mange tak!!
Nu skal jeg til noget andet.....noget UPDATE - så jeg ender nok med at oprette et spørgsmål igen
Jeg skal nemlig have lavet et lille cms til en hjemmeside :(
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