PHP 2 Fragen

  • Hey,


    wir haben eine Tabelle, spalten: ID Name Alter Aktionen
    Unter Aktionen kann man den Nutzer löschen oder bspw. eine Nachricht senden, aber wie schaffe ich das per Klick den Nutzern zu identifizieren?
    Und wenn ich ein Button hinzufüge, muss ich dann nur per isset abfragen, wenn es in der gleichen datei verarbeitet wird?


    Danke schonmal im Voraus


    Liebe grüße

  • Schick die ID einfach mit.
    Bspw. <Input Type='hidden' value='<?= USERID ?>' />


    //handy

  • Schick die ID einfach mit.
    Bspw. <Input Type='hidden' value='<?= USERID ?>' />


    //handy

    Funktioniert nicht wie gewollt.


    Ich möchte das wenn man auf ein btn klickt, dass sich der ausgewählt Beitrag löscht, die ID habe ich herausgelesen, aber es wird irgendwie immer der letzte eintrag von der DB gelöscht, als das was ausgewählt ist.


    mit foreach lese ich alle einträge aus und gebe sie in einer tabelle wieder.(funktioniert)

    PHP
    foreach ($dbh->query($sql) as $row) {


    Dann kommen halt die ganzen Einträge, wenn ich jetzt den Button da habe:
    http://prntscr.com/m3woi0


    Und ich auf den lösch button klicke, werde ich aufgrund folgenden Code zu der verarbeitungsdatei weitergeleitet:


    PHP
    <form method="POST" action="seiten/support_delete.php" id="delete">
                                                        <a class="btn btn-dark" value="<?php echo $support_id;?>" onclick="document.getElementById('delete').submit();" name="delete"><i class="fa fa-lg fa-trash"></i></a>
                                                      <input type="hidden" value="<?php echo $support_id;?>" name="support_id">
                                                  </form>


    ps. Mit javascript kenne ich mich nicht so gut aus, werde es demnächst lernen.


    Anschließen werde ich weitergeleitet zu der verarbeitungsdatei, aber das gibt komischerweise immer den letzten Eintrag aus:
    http://prntscr.com/m3wp2j


    Obwohl es in der index Datei angezeigt wird:
    http://prntscr.com/m3wpby (habe es mit absicht 3x anzeigen lassen, lw :D)


    Der quellcode in support_delete.php:



    Kann mir wer helfen?
    Danke im Voraus

  • Weitere Zeilen aus deinem Script wären hilfreich. Grade die Erstellung der Tabelle mit den Einträgen (die komplette foreach) usw.

    okeeeedoke



    Sieht pro Datensatz so aus:
    http://prntscr.com/m422p6

    Einmal editiert, zuletzt von Habub47 ()

  • Ok. Auf den ersten Blick sehe ich da keinen Fehler.
    Kannst du noch die support_dete Datei zeigen?


    Un um es zu verstehen: Egal auf welchen Löschen-Button du klickst es wird nur der letzt Beitrag gelöscht bzw. in der Datei angezeigt?

    Ja das übergibt mysteriöse Weise immer nur die ID vom letzten Datensatz.
    Edit2: Allene nur wenn ich $support_id als echo ausgebe, dann gibt immer nur die letzte ID aus, also mit der DB Verbindung hat es nicht zu tun, irgendwie wird im index.php die richtige ID ausgegeben auf der selben seite, aber falsch weitergegeben auf suppoprt_delete.php.
    Wenn ich 10 Support Tickets habe egal welches ich löschen möchte, das nimmt immer den neusten also den letzten


    Hier der Code:

    2 Mal editiert, zuletzt von Habub47 ()

  • Problem gelöst. Großen Dank an @Cireyses



    HTML
    <a class="btn btn-dark" value="<?php echo $support_id;?>" onclick="document.getElementById('delete').submit();" name="delete"><i class="fa fa-lg fa-trash"></i></a>

    Sowie ich es verstanden habe, hat dieser Befehl
    onclick="document.getElementById('delete').submit()
    dazu geführt, dass es zu dem Fehler kam. Die ID ist einmalig und wegen der forschleife wurde sie öfters aufgerufen, da der letzte Datensatz in der Datenbank aufgerufen wird, wurde jede weitere delete-id, welches von der for-schleife aufgerufen wurde mit dem der ersten überschrieben. Bisschen kompliziert erklärt, ich weiß :huh::huh::huh:


    @Cireyses hat mir dazu noch sehr wichtige und sehr hilfreiche Tipps gegeben, der hat sich viel Zeit genommen und mir alles gründlich erklärt. Nochmals, danke!


    #closed


    #edit: vergessen zu erwähnen was wir anstatt den obrigen Code benutzt haben:
    <button class="btn btn-dark" name="delete" value="<?php echo $support_id;?>" ><i class="fa fa-lg fa-trash"></i></button>