Anzeige

löschen eines bestimmten Datensatzes.

löschen eines bestimmten Datensatzes. | PSD-Tutorials.de

Erstellt von the_real_didi, 08.01.2007.

  1. the_real_didi

    the_real_didi Aktives Mitglied

    21
    Dabei seit:
    31.08.2005
    Beiträge:
    452
    Geschlecht:
    männlich
    Software:
    Photoshop, Illustrator, InDesign, TYPO3,
    löschen eines bestimmten Datensatzes.
    Hallo

    Habe folgendes Problem. ich lese aus einer Datenbank Datensätze aus und gebe diese in Tabellenform aus. hinter jedem Datensatz kommen Buttons mit "löschen" oder "bearbeiten".

    Mein Problem ist, dass ich nicht weiß, welcher buttongedrückt wurde, also welcher Datensatz gelöscht oder bearbeitet werden soll. Ich brauch ja die ID des Datensatzes.
    Jetzt könnte ich ja beim Erstellen der Buttons immer die ID des Datensatzes in den Namen schreiben. Bis dahin ist es kein Problem.
    Wie erfahre ich jetzt aber, welcher button gedrückt wurde. ich weiß ja nicht, welche IDs überhaupt eingelesen wurden. wieviele Datensätze kommen, usw.
    Wie kann ich das mit den Buttons also dynamisch gestalten um genau zu erfahren, für welchen Datensatz der Button gedrückt wurde.

    Danke.
     
    #1      
  2. BlueBird

    BlueBird Guest

    löschen eines bestimmten Datensatzes.
    Hallo,

    also wenn ich dein Problem richtig verstanden habe dann suchst du so was:

    Formular:
    [php:1:14c29d3b4f]
    //Verbindung aufbauen & Auslesen ect......
    echo '<input type="Radio" name="id" value="'.$datensatz['id'].'">'; //Button Ausgeben mit der ID
    //Verbindung schließen ect.
    [/php:1:14c29d3b4f]

    Beim Auslesen musst du das dann so schreiben:

    [php:1:14c29d3b4f]
    //Variablen übergeben
    $id = $_POST['id'];

    //verbdindung Aufbauen, alles wie gehabt

    $loeschen = "DELETE FROM tabelle
    WHERE id = '$id'";
    mysql_query($loeschen);

    [/php:1:14c29d3b4f]

    Kannst dann ja auch noch Sachen dazu bauen ect.

    Aber so mache ich das immer, evtl. noch ne Schleife mit einbauen, damit du mehrere Datensätze auf einmal löschen kannst!

    Viel Spaß! 8)
     
    #2      
  3. jonas93

    jonas93 Guest

    löschen eines bestimmten Datensatzes.
    Kannst du nicht beim erstellen der Buttons gleich über eine Javascript-Funktion die ID übermitteln?
    ich mein so: im Button

    Code (Text):
    1. onsubmit="delete('$VARIABLE_ID');"
    Edit: Da war wohl jemand schneller. Wie er es gemacht hat gehts natürlich auch.
     
    #3      
  4. BlueBird

    BlueBird Guest

    löschen eines bestimmten Datensatzes.
    JS ist aber sowieso nicht so gut, was ist wenn er das z.B. in nen CMS einbinden will?!

    Wenn dann der Admin kein JS anhat, kannste das schon wieder vergessen!
     
    #4      
  5. erti

    erti Blabubb

    Dabei seit:
    24.07.2006
    Beiträge:
    221
    Geschlecht:
    männlich
    löschen eines bestimmten Datensatzes.
    Du machst einfach bei jedem Beitrag nen submit-Button in die Tabelle...

    Also bei jeder Spalte ein neues Formular..
    Und dann gibts du einfach bei jeden Formular ein input vom Typ "hidden" dazu, der als value die ID enthält...

    Wenn du dann den Button drückst rufst du ne Seite auf, welche die ID einfach per post abfragt und den entsprechenden Datensatz löscht...

    Oder du machst einfach statt dem Button nur nen Link hin, bei dem du einfach im Querystring die ID anhängst und fragst sie dann per GET ab!
     
    #5      
  6. the_real_didi

    the_real_didi Aktives Mitglied

    21
    Dabei seit:
    31.08.2005
    Beiträge:
    452
    Geschlecht:
    männlich
    Software:
    Photoshop, Illustrator, InDesign, TYPO3,
    löschen eines bestimmten Datensatzes.
    ich muss das ganze mit buttons realisieren. ist so gewünscht. Da ist das Problem, dass mir Value zum abspeichern der id nicht zur verfügung steht da dort ja die Beschriftung des Buttons enthalten ist. Also bleibt mir nur die id in den Buttonname zu hängen. Dann müsste ich ja aber immer abfragen:

    if button1 gedrückt ...
    if button2 gedrückt ...
    if button3 gedrückt ...

    wobei ich ja wiederum nicht weiß, welche IDs ausgelesen wurden. Das muß also irgendwie dynamisch abgefragt werden.

    Könnte ich den wert einem anderen Attribut des Buttons, z.B.
    [php:1:337081dd1e]<input type="submit" name="loeschen" value="Daten l&schen" id="ID des Datensatzes">[/php:1:337081dd1e]
    missbrauchen um die ID des Datensatzes zu speichern?
    Wie frage ich das dann mit php ab?
     
    #6      
  7. erti

    erti Blabubb

    Dabei seit:
    24.07.2006
    Beiträge:
    221
    Geschlecht:
    männlich
    löschen eines bestimmten Datensatzes.
    Nein, du weist nicht dem Button die ID als value zu, sondern einem anderen versteckten input...

    Das könnte so aussehen...

    [php:1:ecafb4e2fa]<?php
    echo '<form action="delete.php" name="formular" method="post">
    <input type="hidden" name="id" value="'.$row['id'].'" />
    <input type="submit" name="send" value="delete" />
    </form>';
    ?>[/php:1:ecafb4e2fa]

    und dann in der delete.php:

    [php:1:ecafb4e2fa]
    <?php
    $id = mysql_real_escape_string($_POST['id']);
    $sql = "DELETE foo FROM bar WHERE id = $id";
    $res = mysql_query($sql);
    // usw...
    ?>
    [/php:1:ecafb4e2fa]

    Ich hoffe du verstehst jetzt was ich meine...!
     
    #7      
  8. the_real_didi

    the_real_didi Aktives Mitglied

    21
    Dabei seit:
    31.08.2005
    Beiträge:
    452
    Geschlecht:
    männlich
    Software:
    Photoshop, Illustrator, InDesign, TYPO3,
    löschen eines bestimmten Datensatzes.
    Danke erti. Funktioniert super. Genau das hab ich gesucht.
     
    #8      
  9. BlueBird

    BlueBird Guest

    löschen eines bestimmten Datensatzes.
    THX erti, kann man vill. mal gebrauchen!

    Wäre ich nit drauf gekommen!

    Hatten ja auch schon nen Tester!^^
     
    #9      
  10. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    löschen eines bestimmten Datensatzes.
    Um das noch 100% sicher zu machen, fügt man nach
    [php:1:4a0f5d61e4]
    <?php
    mysql_query = ("DELETE foo FROM bar WHERE id = $id ORDER BY id LIMIT 1");
    ?>
    [/php:1:4a0f5d61e4]

    Sprich einen Löschvorgang limitiert man auf 1 und lässt ihn nicht offen in der Anzahl!
     
    #10      
  11. erti

    erti Blabubb

    Dabei seit:
    24.07.2006
    Beiträge:
    221
    Geschlecht:
    männlich
    löschen eines bestimmten Datensatzes.
    Man kann ORDER BY und LIMIT auch bei nem "Delete-Query" bestimmen?
    Ich hätte immer gedacht, dass das nur für ne SELECT Abfrage is...

    Naja, wieder was dazugelernt! :)
     
    #11      
  12. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    löschen eines bestimmten Datensatzes.
    Jetzt überleg ich auch gerade, welchen Sinn ORDER BY und LIMIT bei einen DELETE haben soll ?

    Offentlich wird nur ein Eintrag gelöscht.
    Was gibt da zu sortieren, wenn hier keine Ausgabe gemacht wird ?
    Welchen Sinn macht LIMIT 1 wenn nur 1 Eintrag gelöscht wird ?

    Das muss jetzt mal jemand ganz genau erklären.
     
    #12      
  13. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    löschen eines bestimmten Datensatzes.
    Also ich würde mal sagen, ihr nehmt euch die Zeit und zieht das MySql-Manual unter http://dev.mysql.com/doc/ am besten CHM-Version.

    Dann gebt ihr in die Suchleiste DELETE ein und ihr findet die ersten Ansätze dazu.

    Das erklärt sich eigentl. von selbst.
     
    #13      
  14. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    löschen eines bestimmten Datensatzes.
    Jo das habe ich jetzt auch gemacht:

    Aber !

    Bei dem Beispiel hier ist nur eine ID die gelöscht werden soll, also keine Reihenfolge !
    Zudem ist es ja ein eindeutiger Wert.
    Und deshalb verstehe ich nicht ganz.

    Oder gibt es mehere IDs mit selben Wert ?
    Was eigentlich auch nicht sein kann ...

    EDIT:

    Witzig was auch im Thread-Titel steht:
     
    #14      
  15. the_real_didi

    the_real_didi Aktives Mitglied

    21
    Dabei seit:
    31.08.2005
    Beiträge:
    452
    Geschlecht:
    männlich
    Software:
    Photoshop, Illustrator, InDesign, TYPO3,
    löschen eines bestimmten Datensatzes.
    Ws gibt immer nur einen Datensatz, den das betrifft. Die ID is n ganz normaler Autoincrement-Wert und Primärschlüssel. Die ID kann es also nie doppelt geben.
     
    #15      
  16. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    löschen eines bestimmten Datensatzes.
    Naja deswegen ^^^ ja auch mein Einspruch bezüglich ORDER BY und Limit.
     
    #16      
  17. the_real_didi

    the_real_didi Aktives Mitglied

    21
    Dabei seit:
    31.08.2005
    Beiträge:
    452
    Geschlecht:
    männlich
    Software:
    Photoshop, Illustrator, InDesign, TYPO3,
    löschen eines bestimmten Datensatzes.
    funzt ohne order by auf jeden fall super. Man muß nur daran denken, dass man die buttons, die jeweils für einen Datensatz sind, in ein eigenes Formular packt. da wäre ich heute beinahe drüber gestolpert.
     
    #17      
  18. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    löschen eines bestimmten Datensatzes.
    Jo logisch, kannst zudem ja noch bei Button den Value mit der ID beschriften lassen :)
     
    #18      
  19. saila

    saila Moderatorle

    Dabei seit:
    21.06.2006
    Beiträge:
    2.239
    Geschlecht:
    männlich
    Ort:
    50°48'23.69" N 7°14'22.19" O
    Software:
    Eclipse, PHP5 OO, MySQL5, CSS(auch Barrierefrei), JS, Symfony
    löschen eines bestimmten Datensatzes.
    Ich hatte nicht mitgeteilt, das der Query ohne ORDER BY bla LIMIT bla nicht läuft!
    Mir kann es auch wurscht sein wie ihr eure Querys zusammensetzt. Es ist ein Hinweis und wer mal Zeilen abschiesst, weil eben solch ein Zusatz fehlt, muss sich nicht wundern.

    Übrigens - wenn eines nachlässig ist, dann ist es der Mensch und diesem kann man in diesem Fall vorbeugen.
     
    #19      
  20. erti

    erti Blabubb

    Dabei seit:
    24.07.2006
    Beiträge:
    221
    Geschlecht:
    männlich
    löschen eines bestimmten Datensatzes.
    Naja, dann erklär uns bitte mal wirklich, warum hier ein ORDER BY oder ein LIMIT nötig ist! Das hast du nämlich noch nicht getan, und finds eigentlich auch net logisch!

    Wie CIX88 schon sagte...
    Für was muss man die zu löschenden Daten ordnen und den Löschvorgang auf das Löschen eines Eintrags begrentzen, wenn sowieso nur ein Datensatz angegeben wird, der gelöscht werden soll?
     
    #20      
Seobility SEO Tool
x
×
×