Frank: will net löschen

weis einer, wieso der nicht löschen möchte ????
weis net wo der fehler ist, kann mir jemand helfen ?
der macht dann gar nix!
glaub die 1.if anweisung ist falsch!

<?
    if(isset($_POST['loeschen']) == true) {
      $sql = "DELETE * FROM news WHERE ID = '$id'";
      mysql_query($sql) or die(mysql_error());
      HEADER ("LOCATION:index.php?action=shownews");
    }

$sql = "SELECT * FROM news ORDER BY Datum DESC;";
  $result = mysql_query($sql) or die(mysql_error());
  $search = array(':)', ':D', ':angel:', ':jump:', ':(', '8)');
  $replace = array('<img src="bilder/smile.gif">', '<img src="bilder/biggrin.gif">', '<img src="bilder/angel.gif">', '<img src="bilder/bounce.gif">', '<img src="bilder/mad.gif">', '<img src="bilder/cool.gif">');

while($row = mysql_fetch_array($result)) {
  $days = date("d.m.y", $row['Datum']);
  $time = date("H:i", $row['Datum']);
  $text = str_replace($search, $replace, $row['Inhalt']);
      echo "<table align=center width=40%>
            <tr>
            <td width=75% id=hor><b>".$row['Titel']."</b></td>
            <td id=hor>".$time. "-". $days."</td>
            </tr>
            <tr>
            <td colspan=2>".nl2br($text)."</td>
            </tr>
            </table>
            <table width=40% align=center>
            <tr>
            <td align=left><font color=green>#".$row['ID']."</font> posted by ";
            if(trim($row['Email']) == "") {
                echo $row['Autor'];
            } else {
                echo "<a href="mailto:".$row['Email']."">".$row['Autor']."</a>";
            }
            echo"</td><td align=right><font color=blue>[Kommentare[Anzahl]]</font>   <font color=red>[Change]   
»»so , hier ist der Link zum löschen!!
<a href="index.php?action=shownews&&loeschen=true&id=".$row['ID']."">[Delete]</a></font></td>
            </tr>
            </table><br>";
  }

?>

  1. Hallo Frank,

    Wo sind deine Debug-Zeilen?

    $sql = "DELETE * FROM news WHERE ID = '$id'";

    print $sql;
    Was erzaehlt MySQL denn, wenn Du die Query ausfuehrst?
    //    HEADER ("LOCATION:index.php?action=shownews");
    diese Zeile auskommentieren, damit man die Fehlermeldungen auch sehen kann. Der Rest des Codes hat mit DELETE ja herzlich wenig zu tun.

    Dieter

    1. Also der macht eigentlich gar nix!
      als wenn nix gemacht wurde!

      stimmt denn das hier?:
      <a href="index.php?action=shownews&&loeschen=true&id=".$row['ID']."">[Delete]</a>

      und das ist der teil zum löschen!
      if(isset($_POST['loeschen']) == true) {
            $sql = "DELETE FROM news WHERE ID = '$id'";
            mysql_query($sql) or die(mysql_error());
            //HEADER ("LOCATION:index.php?action=shownews");
          }

      Hallo Frank,

      Wo sind deine Debug-Zeilen?

      $sql = "DELETE * FROM news WHERE ID = '$id'";
      print $sql;
      Was erzaehlt MySQL denn, wenn Du die Query ausfuehrst?
      //    HEADER ("LOCATION:index.php?action=shownews");
      diese Zeile auskommentieren, damit man die Fehlermeldungen auch sehen kann. Der Rest des Codes hat mit DELETE ja herzlich wenig zu tun.

      Dieter

      1. HAT SICH ERLEDIGT, hab es hinbekomme!
        hab nicht per $_POST übergeben und eine Var fehlte!! die id!!

        ok trotzdem thx

      2. Hallo Frank,

        Also der macht eigentlich gar nix!
        als wenn nix gemacht wurde!

        Das ist echt eine Superfehlermeldung

        stimmt denn das hier?:
        <a href="index.php?action=shownews&&loeschen=true&id=".$row['ID

        Wie soll ich das wissen, bei && haette jedenfalls && gelangt.

        print $sql;

        Wir wissen immer noch nicht, was hier rauskommt, wir wissen auch nicht, ob $_POST['loeschen'] gesetzt ist.

        Was erzaehlt MySQL denn, wenn Du die Query ausfuehrst?

        Auch noch unbekannt.

        Sorry, aber so kann man nicht mal wild rumraten, du musst schon Fehlermeldungen und _relevanten_ Code posten.

        Dieter

  2. Hallo Frank,

    weis einer, wieso der nicht löschen möchte ????

    nein, woher auch? Was soll überhaupt gelöscht werden?

    weis net wo der fehler ist, kann mir jemand helfen ?
    der macht dann gar nix!

    definiere "gar nix".

    glaub die 1.if anweisung ist falsch!

    wie hießt es doch so schön - glauben heißt nicht wissen :-)

    if(isset($_POST['loeschen']) == true) {

    das "==true" kannst du weglassen (falsch ist es aber imho nicht) - wenn du aber überprüfen willst, ob in $_POST['loeschen'] "true" drinsteht, solltest du aber eher if($_POST['loeschen']=='true') schreiben.

    $sql = "DELETE * FROM news WHERE ID = '$id'";

    du solltest dir mal den DELETE-Syntax zu Gemüte führen: http://www.mysql.de/doc/de/DELETE.html

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

    HEADER ("LOCATION:index.php?action=shownews");

    das ist kein gültiger header - hinter "Location:" gehört eine komplette url.

    $replace = array('<img src="bilder/smile.gif">', [...]);

    hier fehlt jeweils das alt-Attribut.

    $days = date("d.m.y", $row['Datum']);
      $time = date("H:i", $row['Datum']);

    mysql kann ganz gut mit Daten umgehen - du suchst DATE_FORMAT() bzw. TIME_FORMAT() (->http://www.mysql.de/doc/de/Date_and_time_functions.html

    echo "<table align=center width=40%>

    beim width-Attribut sind die Anführungszeichen verpflichtend.

    <a href="index.php?action=shownews&&loeschen=true&id=".$row['ID']."">[Delete]</a></font></td>

    hier musst du die & maskieren (mit & - um einer Nachfrage nach dem Testen des http://validator.w3.org/ vorzubegen :-)) - und für was sind die <font>s? das geht mit css einfacher.

    Grüße aus Nürnberg
    Tobias

    --
    Selfcode: sh:( fo:) ch:? rl:( br:< n4:& ie:% mo:| va:) de:] zu:) fl:( ss:| ls:[ js:|