Gå til innhold

Hjelp til å slette fra en tabell i mySQL


Anbefalte innlegg

Skrevet

Trenger hjelp til å sette opp en form med sql spørring for å slette nyheter fra en tabell.....

 

Slik ser sql tabellen ut:

 




CREATE TABLE nyheter (

 ID int(11) NOT NULL auto_increment,

 navn text,

 nyhet text,

 tid time NOT NULL default '00:00:00',

 dato date NOT NULL default '0000-00-00',

 overskrift varchar(32) NOT NULL default '#Nyheter',

 PRIMARY KEY  (ID),

 FULLTEXT KEY navn (navn)

) TYPE=MyISAM;



 

Jeg vil ha muligheten til å slette et inlegg. Noen som kan hjelpe meg..?

Videoannonse
Annonse
Skrevet

Hva kan være feil her? Den får opp nyhets teksten men når jeg trykker på slett knappen så fjerner den ikke noe. :cry:


<?

       include('../mysql-config.php');

?>



<form action="<?=$_SERVER['PHP_SELF']?>" method="post">

<?php

$result=mysql_query("SELECT * FROM nyheter") or die (mysql_error());

echo '<select name="slettnyheter">';

while ( $row=mysql_fetch_assoc($result) )

{

 echo '<option value="'.

   $row['ID'].

   '">'.

   $row['navn'].

   ', '.

   substr($row['nyhet'], 0,20) .

   '...</option>';

}

echo '<input type="submit" name="Action" value="Slett!">';

?>

</form>

<?php

if (isset($_POST['ID'])) {

 $query="DELETE FROM nyheter WHERE ID=".$_POST['ID'];

 mysql_query($query) or die(mysql_error() );



}

?>



Skrevet

Hvorfor funker ikke denne?

 

<?

       include('../mysql-config.php');

?>



<form action="<?=$_SERVER['PHP_SELF']?>" method="post">

<?php

$result=mysql_query("SELECT * FROM nyheter") or die (mysql_error());

echo '<select name="slettnyheter">';

while ( $row=mysql_fetch_assoc($result) )

{

 echo '<option value="'.

   $row['ID'].

   '">'.

   $row['navn'].

   ', '.

   substr($row['nyhet'], 0,20) .

   '...</option>';

}

echo '<input type="submit" name="Action" value="Slett!">';

?>

</form>

<?php

if (isset($_POST['Action'])) {

$sql = "DELETE FROM info WHERE ID=".$_POST['ID']";

if (@mysql_query($sql)) {

echo('<p>Sendt:');

}

?>

Skrevet

<?php

if (isset($_POST['Action'])) {

$sql = "DELETE FROM info WHERE ID=".$_POST['ID']";

if (@mysql_query($sql)) {

echo('<p>Sendt:');

}

?>

 

Et " for mye. Fjern det.

Skrevet


<?

       include('../mysql-config.php');

?>



<form action="<?=$_SERVER['PHP_SELF']?>" method="post">

<?php

$result=mysql_query("SELECT * FROM nyheter") or die (mysql_error());

echo '<select name="slettnyheter">';

while ( $row=mysql_fetch_assoc($result) )

{

 echo '<option value="'.

   $row['ID'].

   '">'.

   $row['navn'].

   ', '.

   substr($row['nyhet'], 0,20) .

   '...</option>';

}

echo '<input type="submit" name="Action" value="Slett!">';

?>

</form>

<?php

if (isset($_POST['Action'])) {

$sql = "DELETE FROM nyheter WHERE ID=".$_POST['ID'];

if (@mysql_query($sql)) {

echo('<p>Sendt:');

}

}

?>

 

Den er da fjernet.

Og siden fungerer nå. Men jeg får ikke slettet nyhetene. :evil:

Noen som kan se over hva som kan være feil?

 

Her er mysql tabellen

 

CREATE TABLE nyheter (

 ID int(11) NOT NULL auto_increment,

 navn text,

 nyhet text,

 tid time NOT NULL default '00:00:00',

 dato date NOT NULL default '0000-00-00',

 overskrift varchar(32) NOT NULL default '#Nyheter',

 PRIMARY KEY  (ID),

 FULLTEXT KEY navn (navn)

) TYPE=MyISAM;



   

Skrevet

Du kan jo prøve dette:


<?php

 $submit = $_POST["submit"];

 $check = $_POST["check"];

 if (!empty($submit) && is_array($check))

 {

   while(list( , $value) = each($check))

   {

      $query = "DELETE FROM nyheter WHERE id = $value";

      mysql_query($query) or die(mysql_error());

    }

 }

?>

<form action="<?=$PHP_SELF?>" method="post">

 <table>

<?php

    $result = mysql_query("SELECT * FROM nyheter")

    while ($row = mysql_fetch_assoc($result))

    {

       echo "<tr>n";

       echo "<td>n";

       echo $row["overskrift"];

       echo "</td>n";

       echo "<td>n";

       echo "<input type=checkbox name=check[] value=" . $row[id] . ">";

       echo "</td>n";

       echo "</tr>n";

    }

?>

   <tr>

     <td>

       <input type="submit" value="Slett" name="submit">

     </td>

   </tr>

 </table>

</form>

 

Tror noe slikt burde fungere..

Skrevet

<?php 

 $submit = $_POST["submit"]; 

 $check = $_POST["check"]; 

 if (!empty($submit) && is_array($check)) 

 { 

   while(list( , $value) = each($check)) 

   { 

      $query = "DELETE FROM nyheter WHERE id = $value"; 

      mysql_query($query) or die(mysql_error()); 

    } 

 } 

?> 

<form action="<?=$PHP_SELF?>" method="post"> 

 <table> 

<?php 

    $result = mysql_query("SELECT * FROM nyheter") 

    while ($row = mysql_fetch_assoc($result)) 

    { 

       echo "<tr>n"; 

       echo "<td>n"; 

       echo $row["overskrift"]; 

       echo "</td>n"; 

       echo "<td>n"; 

       echo "<input type=checkbox name=check[] value=" . $row[id] . ">"; 

       echo "</td>n"; 

       echo "</tr>n"; 

    } 

?> 

   <tr> 

     <td> 

       <input type="submit" value="Slett" name="submit"> 

     </td> 

   </tr> 

 </table> 

</form> 

 

Parse error: parse error in /home/nitro/spot/admin/leggtilfjernnyheter.php on line 55

Finner ingen feil, ser dere noen?

Skrevet

<! --- Fjern Nyheter --- !>

<?php

 $submit = $_POST["submit"];

 $check = $_POST["check"];

 if (!empty($submit) && is_array($check))

 {

   while(list( , $value) = each($check))

   {

      $query = 'DELETE FROM nyheter WHERE id = $value';

      mysql_query($query) or die(mysql_error());

    }

 }

?>

<form action="<?=$PHP_SELF?>" method="post">

 <table>

<?php

       $result = @mysql_query('SELECT * FROM nyheter');

       if (!$result) {

          die('<p>Får ikke kontakt med ' .

                      ' tabellen på dette tidspunktet: ' . mysql_error() . '</p>');

       }



       // Vis tekt i som ligger i databasen

       while ( $row = mysql_fetch_assoc($result) ) {





       echo "<tr>n";

       echo "<td>n";

       echo $row["nyhet"];

       echo "</td>n";

       echo "<td>n";

       echo "<input type=checkbox name=check[] value=" . $row[id] . ">";

       echo "</td>n";

       echo "</tr>n";



    }

?>

   <tr>

     <td>

       <input type="submit" value="Slett" name="submit">

     </td>

   </tr>

 </table>

</form>

Nå får jeg opp formen med alle nyhetene mine. Men jeg får ikke slettet.

 

Denne feilmeldingen får jeg.

 

Unknown column '$value' in 'where clause'

Skrevet

Gå tilbake til den versjonen der du ikke fikk feil men ikke fikk sletta. Så tar du og skriver ut SQL-setningen - da ser du fort hva problemet er:

 

a) SQL er riktig -> PHP er feil -> Fiks PHP

B) SQL er feil -> Fiks SQL

 

:p Men seriøst, å skrive ut er en genial måte å debugge på. Nå jobber du i blinde.

 

Hvis du ikke kommer til det trinnet at du får SQL-setningen ut på skjerm engang, så ville jeg kommentert ut linje for linje til skriptet funker. Da kan du peke på den linja som fucker opp!

  • 2 uker senere...

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...