Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Löschfunktion einer Datensatzauflistung (einzeln)

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Arne Drews
    antwortet
    das würde aber nicht erklären warum immer das letzte glöscht wird
    Doch. Wenn er aufgrund falscher oder vergessener Iteration in jedem Link die Id des letzten Eintrages stehen hat, würde es das sehr wohl erklären...

    EDIT
    Aber wie ich oben sehen kann bekommt er die aus der DB, dann dürfte meine Vermutung falsch sein.

    Schlagt mich jetzt nicht, aber kann das am LIMIT 1 liegen???
    Ich mein WHERE id= sollte doch ausreichen, wenn die eindeutig ist oder?

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    von der Logik her ja. Hab mich nach asipaks beispiel gehalten.
    Extern oder intern löscht er immer nur den ältesten Datensatz.
    Das heist der nimmt immer die erste ID aus der schleife mit rüber in die nächste und dann bis die schleife zuende is.Ergo vermute ich dass was mit meienr Übergabe im Link nich in ordnung is.
    Mir fällt noch grad auf dass ich garkeinen bezug auf meine Spalte: 'art_id' in der sql-Tabelle article bezug nehme.
    JPformular1.php:
    PHP-Code:
    <?php // Verbindung zur Datenbank und Artikelauflistung
    mysql_connect("localhost""root""")
        or die(
    "Keine Verbindung möglich: " mysql_error());
    mysql_select_db("eshop");

    $result=mysql_query("SELECT * FROM article");

    while (
    $zeile=mysql_fetch_assoc($result))
    {
        echo 
    'Modeltyp:'.$zeile["art_name"].
             
    'Farbe:'.$zeile["art_color"].
             
    'Preis:'.$zeile["art_price"].
             
    '<a href="delete.php?id='.$zeile['id'] . '">Löschen</a>';
    }  
    ?>
    Delete.php:
    PHP-Code:
    <?php 
    mysql_connect
    ("localhost""root""")
        or die(
    "Keine Verbindung möglich: " mysql_error());
    mysql_select_db("eshop");

    if (!isset(
    $_GET['id'])) {
      
    header("Location: JPformular1.php");
      exit;
    }

    $sql "DELETE FROM article WHERE 'id' = " . (int)$_GET['id'] . " LIMIT 1";
    mysql_query($sql) OR die (mysql_error());
    ?>

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    Haben Deine Links vielleicht immer dieselbe ID die sie der delete.php übergeben?
    das würde aber nicht erklären warum immer das letzte glöscht wird!!!
    was vl hilfreich wäre, die tabellen struktur, weil ich bin nicht sicher ob der key stimmt also die id ,, wie die heißt oder was des für a fels is ...

    Einen Kommentar schreiben:


  • Arne Drews
    antwortet
    Haben Deine Links vielleicht immer dieselbe ID die sie der delete.php übergeben?

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    OK also er löscht tatsächlich jetzt auch in echtzeit innerhalb der Hauptdatei *kullerkeksfreu*
    Nur immer den ältesten Datensatz. Jetzt muss ich nur verstehen warum er das macht *weiter grübel*

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Würden wir alle an einem Tisch sitzen und ich würd nen Kasten Bier spendiern damit ihr mir schnell mal den kram einbleut dann siehts anders aus denke ich.
    Das sowieso, immerhin ist die Hilfe hier im Forum ein Service und keine Selbstverständlichkeit.
    [...]und intern werd ich wohl nie rauskriegen weil mir die grundlagen und das strukturierte denken fehlt.
    Da gibt es im Grunde, wenn man sich alleine den Code anschaut, überhaupt keinen Unterschied im Vergleich zur "externen" Lösung. Zumindest Ausprobieren sollte man doch von jedem, auch von einem Einsteiger, erwarten dürfen.

    Gruß

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    @Florian:
    Ja woher soll ich das wissen wenn man mir gleich sagt ich soll ne externe datei anlegen. Dann gehe ich davon aus das es mit sicherheitsaspekten und funktionalität was zu tun hat. Mir war klar das es auch intern geht.
    Man glaubt immer das was einem zuerst gesagt wurde und hält sich dran bis jemand anderes kommt und es anders sagt. Das können wir noch weiterführen bis in die psychologie hinein aber bringt uns hier nichts denke ich. Würden wir alle an einem Tisch sitzen und ich würd nen Kasten Bier spendiern damit ihr mir schnell mal den kram einbleut dann siehts anders aus denke ich.

    Aber nun gut jetzt weis ich wie man es extern löst und intern werd ich wohl nie rauskriegen weil mir die grundlagen und das strukturierte denken fehlt. Bis dahin ersma Dankeschön.

    @Asipak: das probier ich gleich mal aus den Befehl inner hauptdatei zu verankern.

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Entweder das oder du schickst den Befehl zum Löschen des Datensatzes an die datei.php (um bei meinem Beispiel zu bleiben) und führst dort den Löschvorgang aus.

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Ja kannst du, du kannst auch alles in die Hauptdatei machen. Aber siehst du genau das meinte ich! Wenn du die Grundlagen nicht drauf hast dann kommt sofort die nächste Frage die absolut unnötig wäre wenn du wenigstens die Basisthemen lernen würdest.

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    so ich habs mal umgesetzt und funktioniert auch genauso wie ihr das beschrieben habt. jetzt versteh ich auch was die GET funktion in der delete.php zu suchen hat.
    Aber is das die einzige lösung über GET sich die ID zu holen in die Delete.php und dann den delete befehl an die Datenbank senden? Zumal nach betätigen des löschen buttons ich ja nur die leere weiße delete.php sehe.
    Dachte mehr, dass alles innerhalb der Hauptdatei.php funktioniert. und mir gleich nach betätigen des "löschens" auch die restlichen Datensätze anzeigt.

    Kann ich da nich ein redirect einbauen in die delete.php so das ich auf die Ursprungsseite zurückgelange? Warum is der weg über die externe delete.php der beste weg?

    Einen Kommentar schreiben:


  • Flor1an
    antwortet
    Sorry aber sowas solltest du echt selbst verstehen können, dafür sollten keine Kommentare nötig sein!

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    Asipaks beispiel oben bringt mir es gut näher. Muss das ersma versuchen zu verstehen. dauert also bissle ^^ Paar kommentare wären sehr cool immer

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    Ich raff trotzdem noch nich wie und wo ich anhand von GET die ID der URL übergebe. Direkt in der URL oder erst in der delete.php? Kann mir das immernoch nicht bildlich vorstellen von wo bis wo die Daten fliessen.
    WTF??
    PHP-Code:
    <a rel="nofollow" href="delete.php?id="'.$zeile["ID"].'">Loeschen</a> 
    da übergibst du die id des datensatztes, ich glaube du hast den artikel von Aspiak nicht wirklich durchgelesen !!!

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    datei.php
    PHP-Code:
    /**
    * SQL-Abfrage
    *
    * $sql = ...
    */

    $result mysql_query($sql) OR die (mysql_error());

    while (
    $row mysql_fetch_assoc($result)) {
      echo 
    $row['column1'] . ' <a href="delete.php?id=' $row['id'] . '">Löschen</a>';

    delete.php
    PHP-Code:
    if (!isset($_GET['id'])) {
      
    header("Location: datei.php");
      exit;
    }

    $sql "DELETE FROM `table` WHERE `id` = " . (int)$_GET['id'] . " LIMIT 1";
    mysql_query($sql) OR die (mysql_error()); 
    Jetzt besser?

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    ARGH - ich hab das nur schnell hingekritzelt damits bissle übersichtlicher aussieht zum lesen des ergebnisses. Endformatierung kommt ganz zum schluss.

    Ich raff trotzdem noch nich wie und wo ich anhand von GET die ID der URL übergebe. Direkt in der URL oder erst in der delete.php? Kann mir das immernoch nicht bildlich vorstellen von wo bis wo die Daten fliessen.

    $check = '<a rel="nofollow" href="delete.php?id='ID'">Loeschen</a>';
    $result=mysql_query("SELECT * FROM article");
    while ($zeile=mysql_fetch_assoc($result))
    {
    echo 'Modeltyp:'.$zeile["art_name"].'Farbe:'.$zeile["art_color"].'Preis:'.$zeile["art_price"].$check.
    '<a rel="nofollow" href="delete.php?id="'.$zeile["ID"].'">Loeschen</a>';
    }
    jetzt is der link schon doppelt und ich weis nich wozu das gut sein sollte....

    Einen Kommentar schreiben:

Lädt...
X