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

  • Cosmik
    hat ein Thema erstellt [Erledigt] Löschfunktion einer Datensatzauflistung (einzeln).

    [Erledigt] Löschfunktion einer Datensatzauflistung (einzeln)

    Ich häng am Problem, dass ich jeden Datensatz der mir aufgelistet wird, per button/link löschen möchte. Nur mein Code funktioniert nich weil ich einfach nich verstehe woher der button seine ID herbekommt und wie ich dann OnSubmit den löschbefehl ausführen kann.
    Da brauch ich wieder nen kleinen denkanstoß. Überall gibs Tutorials und hinweise zur nutzung von DELETE FROM * WHERE id=$ID usw. aber kein vernünftiges beispiel wo in meiner auflistung ein simpler Button erscheint mit der ID des jeweilegen Datensatzes und dem code womit ich die Löschfunktion auslöse. "art_id" heist meine ID-Spalte in meiner sql-Tabelle.
    PHP-Code:
    <?php // Verbindung zur Datenbank
    mysql_connect("localhost""root""")
        or die(
    "Keine Verbindung möglich: " mysql_error());
    mysql_select_db("eshop");

    // Artikelabfrage aus der Datenbank - Auflistung dieser
    $result=mysql_query("SELECT * FROM article"); 
    while 
    (
    $zeile=mysql_fetch_assoc($result))
        {
        echo 
    '<br>Modeltyp:&nbsp;'.
        
    $zeile["art_name"].'Farbe:&nbsp;'.
        
    $zeile["art_color"].'Preis:&nbsp;'.
        
    $zeile["art_price"].
        <
    input type='submit' name='loeschen[]' value='".$iddesdatensatzes."'>
                  foreach(
    $loeschen as $art_id)
                  { 

                       
    $sql2 "DELETE FROM article WHERE art_id = $iddesdatensatzes ";
                       
    $result mysql_query($sql2) OR die(mysql_error());
                  }
        ;
        }
    ?>

  • Cosmik
    antwortet
    So nach 5 stunden "Peter Kroppfs Guide through the SQLaxy-basics" hab ich es endlich hingekriegt und läuft 1a sahne das Ding. Hat also geholfen das in den Arsch treten bei mir

    Hoffe ich muss euch nich nochmal sone Anfängerfehler posten...*duck*

    bis dahin THX &*wink*

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    bringen und nem Leihen einfach erklären was ich gemacht habe. ... nur wenns verschachtelt wird hört mein strukturelles denken auf, weil ich weit andere Dinge im Kopf habe als Programmierung. Daher nur die Bitte das mal zu erklären und was ich wo zu beachten hab.
    Mal ehrlich - Häh? Entweder Du widmest Dich der Programmierung oder eben nicht. Wir werden Dir hier sicher nicht Privatlektionen erteilen, damit Du das dann jemand anderem erklären kannst! So ein Quark!

    nikosch aka Asipak
    Oha, meine geheime Identität ist gelüftet! Spinnensinn sei wachsam..

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    Menno das ging ebend noch sauber
    Na ich werd noch bissle dran sitzen und hast recht paar grundlagen noch reinziehen. Bis morgen dann!

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    Und jetzt werden bitte die Grundlagen gelernt und dann kommst du morgen nochmal vorbei.
    oh ja, weil des is ja echt schlimm !!!
    ich hab so des gfühl wir haben an dem Script mehr gearbeitet als du selba !!!

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Und?

    Code:
    <?php 
    error_reporting(E_ALL | E_STRICT);
    Und jetzt werden bitte die Grundlagen gelernt und dann kommst du "morgen" nochmal vorbei.

    http://www.php.de/php-einsteiger/489...nsammlung.html

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    der zeigt mir grad nurnoch nen leeres div an - hab grad glaub irgendwas kaputtgedoktort mom pls
    so isses grad alles innerhalb einer Datei:
    PHP-Code:
    <?php 
    mysql_connect
    ("localhost""root""")
        or die(
    "Keine Verbindung möglich: " mysql_error());
    mysql_select_db("eshop");

    if (!isset(
    $_GET['id'])) {

      exit;
    }

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

    <?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="JPformular1.php?id='.$zeile['art_id'] . '">Löschen</a>';
    }  
    ?>

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    aua !!!
    sehr übersichtlich^^ *sarkasmus aus*

    also ich würd mal des
    PHP-Code:
    '<a href="JPformular1.php?id='.$zeile['id'] . '">Löschen</a>'
    durch
    PHP-Code:
    '<a href="JPformular1.php?id='.$zeile['art_id'] . '">Löschen</a>'
    ersetzten
    und
    PHP-Code:
    $sql "DELETE FROM article WHERE 'id' = " . (int)$_GET['id']; 
    durch
    PHP-Code:
    $sql "DELETE FROM article WHERE 'art_id' = " . (int)$_GET['id']; 
    ersetzetn ^^

    EDIT:
    So langsam solltest du mal selber dein Hirn einschalten.
    net langsam, sondern schnell !!!
    ich bin ja davon ausgegeangen, das er das angepasst hat !!!

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Und wo ist die Spalte id?
    Code:
    $zeile['id']
    So langsam solltest du mal selber dein Hirn einschalten.

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    TblStrk.: art_id art_cat_id art_name art_text art_pic art_sex art_size art_color art_price art_active_flag

    vom theoretischen ansatz ist es doch egal ob er die ID aus der sql-table nimmt oder eine ID aufzählen lässt oder? Solang eine feste vergeben wurde is diese doch gültig. da aber in meinem code er sie nicht hochzählt sondern

    Einen Kommentar schreiben:


  • Asipak
    antwortet
    Schlagt mich jetzt nicht, aber kann das am LIMIT 1 liegen???
    Ich mein WHERE id= sollte doch ausreichen, wenn die eindeutig ist oder?
    Bin irgendwie raus aus dem Thema! Was soll am LIMIT liegen?

    Natürlich reicht die Bedingung für den Löschvorgang selbst aus, wenn die ID eindeutig ist. Durch das LIMIT wird die Abfrage allerdings weiter optimiert und ist vergleichsweise schneller (nach meinen Erfahrungen).

    Gruß

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    @phil: wie ausgeben?
    z.b. per var_dump($_GET);
    hab limit entfernt aber jetzt haut er mir alle datensätze mit einmal weg.
    is klar, wenn die id leer is, bei limit 1 hat er dann nur den letzten glöscht, jz sinds alle .... !!!

    könntest du uns bitte deine Tabellen Struktur posten !!!

    thx

    Einen Kommentar schreiben:


  • Cosmik
    antwortet
    @phil: wie ausgeben? mit <pre>? hab limit entfernt aber jetzt haut er mir alle datensätze mit einmal weg. (nach interner löschfunktion) mit der externen delete php hab ich das redirect noch nicht hinbekommen um damit weiter zu machen und er haut mri da ebenfalls alle mit einmal weg. Ich werds mal noch mit anderen Browser kurz testen weil immer ständig refreshen muss.

    Habs mal ohne externe jetzt probiert aber da verhunzt er es mir auch:
    PHP-Code:
    <?php 
    mysql_connect
    ("localhost""root""")
        or die(
    "Keine Verbindung möglich: " mysql_error());
    mysql_select_db("eshop");

    if (!isset(
    $_GET['id'])) {

      exit;
    }

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

    <?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="JPformular1.php?id='.$zeile['id'] . '">Löschen</a>';
    }  
    ?>

    Einen Kommentar schreiben:


  • PhillKill12
    antwortet
    Schlagt mich jetzt nicht, aber kann das am LIMIT 1 liegen???
    Ich mein WHERE id= sollte doch ausreichen, wenn die eindeutig ist oder?
    ja sicha stimmt, is leer, weil der letzte älteste Datensatz hat immer die kleinst id und steht somit an oberster stelle und wird als erstel gelöscht!!

    also war meine vermutung vermutlich doch richtig :

    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:


  • PhillKill12
    antwortet
    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...
    also ich würd mal sagen, wenn er einen Datensatz einmal löscht, dann is er weg und dann kann er ihn kein zweites mal löschen ...?

    aber is eh egal ... die id wird ja korrekt übergeben ...

    ähm, kurze frage, hast du schon mal versucht dir den SQL code ausgeben zu lassen?

    post uns den mal !!

    Einen Kommentar schreiben:

Lädt...
X