Delete From -Problem

  • Hi, ich hab mal ein ganz einfaches Newsscript gebastelt.
    Jetzt wollte ich es machen, das ich die Eintraege ueber ein kleines X loeschen kann, hab auch schonmal nen Code gebastelt

    Code
    $sql = "DELETE FROM
                                news
                            WHERE
                                ID = '".$_POST['ID']."'";
                    mysql_query($sql) OR die(mysql_error());
    
    
    ?>


    Den wollte ich jetzt in eine Neue datei machen, und dann X das irgenwo einfuegen, wo die News ausgegeben werden
    Jetzt meine Frage, erkennt PHP Automatisch die ID des ausgegeben News-inhalt?
    Naja, ist schwer zu erklaeren, erstmal natuerlich, ist der Code so richitg, und kann ich den so benutzen? Und loescht das "X" Auch nur die news, in der das X auch steht? Erkennt PHP das Automatisch?
    Ich hoffe ihr versteht meine doch etwas verwirrende Ausdrucksweise

    Hoffe nicht auf Taube ohren zu stoßen, und geholfen zu werden ;)

    Sibbi

  • ich würde dem quey zur sichehreit noch ein LIMIT 1 hinzufügen.

    UND PHP macht fast nichts automatisch. Programmiersorachen musst du halt imemr alels sagen. Ist ja auch der sinn der Übung.

  • wie soll php sowas automatisch erkennen ;)? das musst du selber machen..
    das ganze könnte so aussehen,

    Code
    [url='del.php?del&action=delete&news_id=<?=$row['id']?>']delete[/url]

    $row['id'] müsstest du noch anpassen, so wie du halt bei dir die news rausholst.

    dann in der del.php:

    Code
    if ($_GET['action'] == 'delete') {
    	mysql_query("
    		DELETE FROM
    			`news`
    		WHERE
    			`id` = '{$_GET['id']}'
    		LIMIT 1
    	");
    	header("Location: news.php");
    }

    wobei man das ganze auch "schöner" machen könnte, zb. noch mit einer bestätigungsfrage usw.
    so long - phore

  • Ohje, ich seh schon, da kommt noch ein ziemlicher Haufen Arbeit auf mich zu, um PHP zu "beherrschen" ;)

    Naja, viele Dank fuer diesen tip, und ich hoffe noch viele weitere! :)


    Sibbii

  • Zitat von phore

    wie soll php sowas automatisch erkennen ;)? das musst du selber machen..
    das ganze könnte so aussehen,

    Code
    [url='del.php?del&action=delete&news_id=<?=$row['id']?>']delete[/url]

    $row['id'] müsstest du noch anpassen, so wie du halt bei dir die news rausholst.

    dann in der del.php:

    Code
    if ($_GET['action'] == 'delete') {
    	mysql_query("
    		DELETE FROM
    			`news`
    		WHERE
    			`id` = '{$_GET['id']}'
    		LIMIT 1
    	");
    	header("Location: news.php");
    }

    wobei man das ganze auch "schöner" machen könnte, zb. noch mit einer bestätigungsfrage usw.
    so long - phore


    muss es nich

    Code
    [url='del.php?del&action=delete&news_id=<? echo']">delete[/url]


    heißen ?

  • Kann es probleme geben, wenn ich bei den News die ID nicht mit auslesen lasse??

    // edit:

    Code
    echo "    <div class=\"Titel\">\n";
                echo $row['Titel'];
                echo "    </div>\n";
                echo "    <div class=\"Autor\">\n";
                echo "by  ";
    //Line37:            echo "<a href=\"del.php?del&action=delete&news_id=<?=$row['id']?>\">delete</a>"; //Ende
                echo $row['Autor'];
                echo "    </div>\n";
    Zitat


    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Programme\xampp\htdocs\self\show.php on line 37

    // vergessen mein Problem zu schildern, also der Error kommt raus, wenn ich das so eingebe... Wo koennte der Fehler liegen?

  • Zitat von phore

    ja - ist ja eigentlich logisch, man kann keine id ansprechen wenn php nicht weiss welche id gemeint ist :)

    so long - phore

    Argh, noch ein Problem ;) Ich muss die ID aber nicht mit Anzeigen, es reicht wenn ich sie mit Auslese aus der Datenbank, oder?! :rolleyes:

    Sorry wegen der vielen Fragerei, aber fuer so spezifische Fragen werde ich wohl in keinem Tutorial auf Antwort stoßen! :)

    Sibbi

  • Folgendes Neues Problem:

    Code
    echo "    <div class=\"Titel\">\n";
                echo $row['Titel'];
                echo "    </div>\n";
                echo "    <div class=\"Autor\">\n";
                echo "by  ";
    //Line37:            echo "<a href=\"del.php?del&action=delete&news_id=<?=$row['id']?>\">delete</a>"; //Ende
                echo $row['Autor'];
                echo "    </div>\n";
    Zitat


    Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:\Programme\xampp\htdocs\self\show.php on line 37

    // vergessen mein Problem zu schildern, also der Error kommt raus, wenn ich das so eingebe... Wo koennte der Fehler liegen?

  • du kannst natürlich nicht in einem html teil plötzlich php ausgeben :)

    mach das lieber so:

    -hier ist deine while schleife-

    Code
    ?>
    <div class="titel"><?=$row['titel']?></div>
    	<div class="autor">by: [url='del.php?del&action=delete&news_id=<?=$row['id']?>']delete[/url] <?=$row['autor']?>
    	</div>
    </div>
    <? } ?>

    die divs sind da übrigens nicht wirklich gut eingesetzt, da würden sich eher <span>'s eignen.
    dann - gewöhn dir an alles klein zu scheiben in php und html.
    so long - phore

  • aber bevor ich nicht das mit <a href="bla da eingefuegt habe, ging das ja.. Oder liegt es nur an dem Link das man den Code umschreiben muss?! :)
    fragen ueber fragen, ich weiß ich nerv euch mit diesem "Kinderkram" aber sonst lernt man es ja nicht, ich hoffe ihr versteht das! :)

    Sibbi

    //edit:
    ich dachte mir, ich sende euch mal den Code fuer die Newsausgabe ;)