Seite 1 von 2 12 Letzte
  1. #1

    Registriert seit
    27.02.2017
    Beiträge
    39
    Thanked 2 Times in 2 Posts

    Standard [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Hallo liebe Community,

    da ich mir Zeit sparen möchte die Datenbank sauber zu halten - habe ich da mal ne' Frage und hoffe es ist auch realisierbar.
    Da ich eine Account Generator Seite betreibe und ich sie gerne demnächst veröffentlichen möchte. Und ich nach und nach
    immer wieder neue Accounts in der Datenbank auffülle. Und die benutzten Accounts nicht wieder verwenden kann. Wollte
    ich fragen, wenn man per Button Klick einen Account generiert, der in einer Textbox ausgegeben wird für den Käufer. Das genau
    dieser Account dann aus der Datenbank gelöscht wird. Ist das möglich bzw. realisierbar? Und wenn ja, kann mir einer bitte dann helfen
    das ganze umzusetzen? Vielen dank im vorraus! :-)

    So sieht das ganze aus in der .php mit dem Button:
    PHP-Code:
    <?php

    include "inc/header.php";

    $result mysqli_query($con"SELECT * FROM `subscriptions` WHERE `username` = '$username' AND `active` = '1' AND `expires` >= '$date'") or die(mysqli_error($con));
    if (
    mysqli_num_rows($result) < && $_SESSION['rank'] != "4" && $_SESSION['rank'] != "5") { 
          
    header('Location: purchase.php');
     echo 
    '<script>window.location = "'.trollface.'.php";</script>';
     }

     else{  
        while(
    $row mysqli_fetch_assoc($result)){
            
    $package $row['package'];
            
    $checkpackage mysqli_query($con"SELECT * FROM `packages` WHERE `id` = '$package'") or die(mysqli_error($con));
            while(
    $row1 mysqli_fetch_assoc($checkpackage)){
                
    $generator $row1['generator'];
            }
        }
    }


    if (isset(
    $_POST['flagalt']) && isset($_POST['generator'])){
        
    $alt mysqli_real_escape_string($con$_POST['flagalt']);
        
    $generatorid mysqli_real_escape_string($con$_POST['generator']);
        
    mysqli_query($con"UPDATE `generator$generatorid` SET `status` = '2' WHERE `alt` = '$alt'") or die(mysqli_error($con));
    }

    $totalalts 0;

    $result mysqli_query($con"SELECT * FROM `generators`") or die(mysqli_error($con));
    while(
    $row mysqli_fetch_assoc($result)) {
        
    $result2 mysqli_query($con"SELECT * FROM `generator$row[id]` WHERE `status` != '0'") or die(mysqli_error($con));
        
    $totalalts $totalalts mysqli_num_rows($result2);
    }

    $generatestotal 0;

    $result mysqli_query($con"SELECT * FROM `statistics` WHERE `username` = '$username'") or die(mysqli_error($con));
    while(
    $row mysqli_fetch_assoc($result)) {
        
    $generatestotal $generatestotal $row['generated'];
    }

    $result mysqli_query($con"SELECT * FROM `statistics` WHERE `username` = '$username' AND `date` = '$date'") or die(mysqli_error($con));
    while(
    $row mysqli_fetch_assoc($result)) {
        
    $generatestoday $row['generated'];
    }
    $totalalts 0;
    $result mysqli_query($con"SELECT * FROM `generators`") or die(mysqli_error($con));

    while(
    $row mysqli_fetch_assoc($result)) {
        
    $result2 mysqli_query($con"SELECT * FROM `generator$row[id]` WHERE `status` != '0'") or die(mysqli_error($con));
        
    $totalalts $totalalts mysqli_num_rows($result2);
    }
    $result mysqli_query($con"SELECT * FROM `freegenerators`") or die(mysqli_error($con));

    while(
    $row mysqli_fetch_assoc($result)) {
        
    $result2 mysqli_query($con"SELECT * FROM `freegenerator$row[id]` WHERE `status` != '0'") or die(mysqli_error($con));
        
    $totalfree $totalfree mysqli_num_rows($result2);
    }

    $totalfreenpaid $totalalts $totalfree $privtotalalts;
    $result mysqli_query($con"SELECT * FROM `users`") or die(mysqli_error($con));
    $totalusers mysqli_num_rows($result);

    if (isset(
    $_GET['delete'])){
        
    $id mysqli_real_escape_string($con$_GET['delete']);
        
    mysqli_query($con"DELETE FROM `news` WHERE `id` = '$id'") or die(mysqli_error($con));

        echo 
    '
            <script>
                window.history.replaceState("object or string", "Title", "index.php");
            </script>
        '
    ;
    }
    if (isset(
    $_POST['addnews'])){
        
    $title sec_tag($con$_POST['addtitle']);
        
    $message sec_tag($con$_POST['addnews']);
        
    $colourp sec_tag($con$_POST['coloured']);
        
    mysqli_query($con"INSERT INTO `news` (`title`, `message`, `writer`, `date`, `colour`) VALUES ('$title', '$message', '$_SESSION[username]', '$datetime', '$colourp')") or die(mysqli_error($con));
    }

    if (isset(
    $_POST['newsid']) && isset($_POST['editmessage'])){
        
    $id sec_tag($con$_POST['newsid']);
        
    $title sec_tag($con$_POST['edittitle']);
        
    $message sec_tag($con$_POST['editmessage']);
        
    mysqli_query($con"UPDATE `news` SET `message` = '$message' WHERE `id` = '$id'") or die(mysqli_error($con));
        
    mysqli_query($con"UPDATE `news` SET `title` = '$title' WHERE `id` = '$id'") or die(mysqli_error($con));

    }
    $result mysqli_query($con"SELECT * FROM `news`") or die(mysqli_error($con));
    $totalnews mysqli_num_rows($result);
    $result mysqli_query($con"SELECT * FROM `news` WHERE DATE(date) = '$date'") or die(mysqli_error($con));
    $todaysnews mysqli_num_rows($result);
    $generatestotal 0;
    $result mysqli_query($con"SELECT * FROM `statistics` WHERE `username` = '$username'") or die(mysqli_error($con));
    while(
    $row mysqli_fetch_assoc($result)) {
        
    $generatestotal $generatestotal $row['generated'];
    }
    $result mysqli_query($con"SELECT * FROM `users` WHERE `date` = '$date'") or die(mysqli_error($con));

    $todaysusers mysqli_num_rows($result);
    $result mysqli_query($con"SELECT * FROM `subscriptions` WHERE `active` = '1' AND `expires` >= '$date'") or die(mysqli_error($con));
    $activesubscriptions mysqli_num_rows($result);
    $privtotalalts 0;
    $result mysqli_query($con"SELECT * FROM `privgenerators`") or die(mysqli_error($con));

    while(
    $row mysqli_fetch_assoc($result)) {
        
    $result2 mysqli_query($con"SELECT * FROM `privgenerator$row[id]` WHERE `status` != '0'") or die(mysqli_error($con));
        
    $privtotalalts $privtotalalts mysqli_num_rows($result2);
    }
    $privgeneratestotal 0;
    $result mysqli_query($con"SELECT * FROM `privstatistics` WHERE `username` = '$username'") or die(mysqli_error($con));
    while(
    $row mysqli_fetch_assoc($result)) {
        
    $privgeneratestotal $privgeneratestotal $row['generated'];
    }

    $pageTitle 'Generator'// Call this in your pages' files to define the page title
    ?>

    <?php include("noob/header.php"); ?>
               
                      
                       <script type="text/javascript">
                    function select_all(obj) {
                        var text_val=eval(obj);
                        text_val.focus();
                        text_val.select();
                        if (!document.all) return; // IE only
                        r = text_val.createTextRange();
                        r.execCommand('copy');
                    }
                  </script>
    <div class="row">
                                <?php
                    
                        
    if($generator == "" || $_SESSION['rank'] == 5){
                            
    $generatorquery "SELECT * FROM `generators`";
                        }else{
                            
    $generatorquery "SELECT * FROM `generators` WHERE `id` = ".$generator;
                        }
                    
                        
    $result mysqli_query($con$generatorquery) or die(mysqli_error($con));
                        while (
    $row mysqli_fetch_array($result)) {
                            echo 
    '
        
             <div class="col-md-3 ">
                  <div class="card">
                    <div class="card-body">
                '
    .$row['name'].'  &nbsp;<a  href="'.$row['link'].'"  target="_blank"><i class="list-icon fas fa-external-link-alt pull-right" aria-hidden="true"></i></a> </div>
                                    <div class="panel-body">
                                        <center><img class="faa-tada animated-hover" src="genimg/'
    .$row["name"].'.png" alt="'.$row["name"].'" width="150" height="150"></center></br>
                                        <input name="alt"  id="generator'
    .$row["id"].'" onclick="select_all(this)" style="text-align: center;" class="form-control" placeholder="username:password">
                                    </div>

                                    <center><button id="generate'
    .$row["id"].'" style="padding: 5px; width: 95%;" class="btn btn-primary">Generate</button></center> 
                                    <p></p>
                                    </br>
                                </div>
                            </div>
                            '
    ;
                        }
            
    ?>
                  </div>

              </section>
          </section></div>  </div>
                            </div>
            <?php include("noob/footer.php"); ?>
    <script src="js/ZeroClipboard.js" ></script>
            <script type="text/javascript">
                jQuery(document).ready(function($) {
                    $('.counter').counterUp({
                        delay: 100,
                        time: 1200
                    });

                    $(".knob").knob();

                });
            </script>
        <?php
        
        $result 
    mysqli_query($con$generatorquery) or die(mysqli_error($con));
        while (
    $row mysqli_fetch_array($result)) {
            echo 
    '
                <script>
                $(document).ready(function(){
                    $("#generate'
    .$row["id"].'").click(function(){
                     $.get("lib/generate.php?id='
    .$row["id"].'&name='.$row["name"].'&username='.$username.'", function(response){
                        $("#generator'
    .$row["id"].'").val(response);
                        $("#flag'
    .$row["id"].'").val(response);
                     });
                    });
                });
                
                var client = new ZeroClipboard( document.getElementById("copy'
    .$row["id"].'") );

                client.on( "ready", function( readyEvent ) {

                  client.on( "aftercopy", function( event ) {
                  } );
                } );

                </script>
            '
    ;
        }
        
        
    ?>
    Und so sieht es in der Datenbank aus, wo die Accounts drin sind:
    https://ibb.co/7ND5NWk

  2. #2
    Avatar von iToxic
    Registriert seit
    18.11.2011
    Beiträge
    918
    Thanked 1.773 Times in 913 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Wieso willst du den Account löschen? Sind die Accounts zeitlich begrenzt auf die Zeit, die der Käufer gekauft hat oder länger als diese Zeit?
    Du kannst die ID des Accounts in der Datenbank bei der Ausgabe in eine Variable speichern und mit der ID dann weiterarbeiten (löschen, wieso auch immer?!; deaktivieren für den Zeitraum; etc.).

    Ich werde dir keinen Quellcode zur Verfügung stellen, setz dich selbst mit den Thema auseinander und lerne für die Zukunft solche Sachen selbst beheben zu können.
    Alternativ beauftrage jemanden der dir das System deinen wünschen entsprechend einrichtet gegen ein gewisses Entgeld natürlich. Du willlst mit dem Projekt schließlich auch Geld verdienen.

    Offtopic: Der Code ist unübersichtlich und unsauber, als Beispiel würde ich Sachen wie in Zeilte 136 so definitiv nicht in einer produktiven Umgebung einsetzen.

    //edit: Über die "Strukturierung" deiner Datenbank sage ich jetzt mal lieber nichts.


  3. The Following User Says Thank You to iToxic For This Useful Post:

    sl33p (29.05.2019)

  4. #3

    Registriert seit
    27.02.2017
    Beiträge
    39
    Thanked 2 Times in 2 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Es hat schon seinen Grund, iToxic. Das ich die generierten Accounts aus der Datenbank gelöscht haben möchte.
    (Der generierte Account, der in der Textbox ausgegeben wird beim Button-Klick, soll nur den Verkäufer zustehen).
    Und danach auch nicht mehr im sortiment Bestand sein.

    Es hat auch niemand gesagt, das du mir nen' Quellcode zu Verfügung stellen sollst, oder? Lediglich habe ich nur gefragt,
    ob das ganze realisierbar ist. Und wenn ja, mit mir versuchen das ganze umzusetzen.. wenn Interesse besteht. Weil ich schon
    einiges probiert habe, aber auch nicht so viel Erfahrung habe und man immer wieder etwas neues dazu lernen kann.

    P.S. Es kommt auf dem Preis an, was verlangt wird. Bin gerne bereit nen' stolzen und angenehmen Preis zu zahlen. Aber keine wucher Preise.

    Und zum Code und der Datenbank, man muss dazu sagen.. das es ein Template war. Ich habe vieles auch gelassen oder mit hilfe von anderen und Eigeniniative verändert.

    Edit: Danke für deine hilfreiche und schnelle Antwort!
    Geändert von sl33p (29.05.2019 um 14:44 Uhr)

  5. #4
    Avatar von iToxic
    Registriert seit
    18.11.2011
    Beiträge
    918
    Thanked 1.773 Times in 913 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Für eine einfache Frage hättest du keinen Quelltext liefern müssen und stattdessen einfach Google oder die Suchmaschine deiner Wahl fragen können:
    Es ist möglich, auch wenn es für mich nicht sinnvoll ist die Einträge zu löschen statt einfach aus der Verteilung rauszunehmen: https://www.w3schools.com/php/php_mysql_delete.asp

    Die von dir genannte "Eigeniniative" kann dir bei einem Projekt das Genick brechen, wenn du selbst keine Ahnung von dem hast, was du tust.
    Weshalb nutzt du ein Template, wenn du eh noch diverse Dinge ändern willst? Dann beuftrage lieber jemanden und mach einen Festpreis aus, der erstellt dir das von dir gewünschte System.


  6. The Following User Says Thank You to iToxic For This Useful Post:

    sl33p (29.05.2019)

  7. #5

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    ich würde die nicht einfach löschen.

    Gehe hin, mache eine DATETIME spalte die du Beispielsweise "used" nennst und fertig.

    Wird ein Kauf getätigt, setzt du "used" auf NOW() und in der Übersicht prüfst du einfach mit
    WHERE `used` IS NULL
    
    ob der Datensatz noch zur Verfügung steht.

    Asta la Pasta!

  8. The Following 2 Users Say Thank You to Bubble Gum For This Useful Post:

    Negok (04.06.2019), sl33p (29.05.2019)

  9. #6

    Registriert seit
    27.02.2017
    Beiträge
    39
    Thanked 2 Times in 2 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Danke für eure beiden hilfreichen und schellen Tipps.

    Edit: Ich habe gerade gesehen, das es garnicht möglich ist. Da ich noch ne' Statistik führe, welche Accounts
    er generiert hat. Da habt ihr recht, das ich es am besten nicht löschen sollte. Mein Fehler, sorry! Aber kann man
    das so einrichten, das wenn sich der Käufer nen' Account generiert - das der Account nicht mehr abgefragt werden
    kann von anderen Usern bzw. generiert werden kann?
    Geändert von sl33p (29.05.2019 um 16:45 Uhr)

  10. #7

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Genau das kannst du mit meinem vorherigen Post machen. Du müsstest die Antworten auch einmal durchlesen, bzw. verstehen

  11. The Following 2 Users Say Thank You to Bubble Gum For This Useful Post:

    iToxic (29.05.2019), sl33p (29.05.2019)

  12. #8
    Avatar von Manipulate
    Registriert seit
    04.12.2011
    Beiträge
    520
    Thanked 505 Times in 356 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Einfach ein Flag in der Datenbank setzen, welcher entweder ein tinyint ist, ein boolean oder ähnliches, kommt drauf an welche Datenbank du benutzt und bei der Abfrage das berücksichtigen.

  13. The Following User Says Thank You to Manipulate For This Useful Post:

    sl33p (29.05.2019)

  14. #9

    Registriert seit
    28.10.2011
    Beiträge
    625
    Thanked 279 Times in 168 Posts

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Es bedarf keinerlei Flags. Wo ist das Problem, ein DATETIME zu verwenden, der ohnehin nur zwei Werte annehmen kann: NULL oder ein Zeitstempel.

    Hat der Eintrag einen Zeitstempel, so ist der Eintrag bereits "verwendet", ist er hingegen NULL, so kann dieser Eintrag noch solange verwendet werden, bis halt ein Zeitstempel gesetzt wird.

  15. #10
    Avatar von DMW007
    Registriert seit
    15.11.2011
    Beiträge
    6.080
    Thanked 9.118 Times in 2.995 Posts
    Blog Entries
    5

    Standard AW: [Hilfe] Per Button Klick etwas aus der Datenbank löschen

    Anderer Ansatz: Wieso erzeugst du keine Relation zu dem Käufer? Das macht auch aus anderen Gründen Sinn: Beispielsweise um dem User zu zeigen, welche Accounts er besitzt (Kaufverlauf). Oder im Falle von Support bei Rückfragen, damit du nachvollziehen kannst, wer welchen Account bekommen hat. Vor allem wenn es um echtes Geld geht (User kaufen Accounts für €), halte ich das für unabdingbar.

    Da würde ich grundsätzlich mit ausreichender Vorsicht agieren. Denn wenn z.B. dein fertiges Template da Sicherheitslücken aufweist, entsteht ggf. ein Schaden, den du am Ende trägst. Das gilt natürlich für alles was zu dem Projekt gehört. Bis hin zum Server, auf dem das läuft. Dementsprechend lohnt es sich auch, die Vorgehens- und Funktionsweise erst mal konzeptionell gründlich zu überdenken, bevor etwas umgesetzt wird. Da kann man solche Themen wie beispielsweise oben beschrieben (Supportablauf) auch durchspielen und Lösungen entwickeln.

    Von dem was man aus deinem Eingangspost sehen kann, sind auch noch andere Fragen offen. Beispielsweise eine Account-Tabelle, die nur "Id" und "Name" als Felder enthält. In meinen Augen wäre da mindestens noch Username/Passwort notwendig, evtl. noch mehr. Da fehlen natürlich konkrete Infos um was es überhaupt geht, um das abschließend beurteilen zu können.


  16. The Following 3 Users Say Thank You to DMW007 For This Useful Post:

    Hase (08.08.2019), Investigator (07.06.2019), sl33p (03.06.2019)

Seite 1 von 2 12 Letzte

Ähnliche Themen

  1. 99 Fire Award Freund Klick Hilfe
    Von Knuddelsspezialist im Forum Audio & Video
    Antworten: 0
    Letzter Beitrag: 09.02.2014, 21:55
  2. Antworten: 1
    Letzter Beitrag: 08.09.2013, 18:40
  3. [Vorstellung] Die etwas andere hilfe ;D
    Von Kuchenmaster im Forum Projektvorstellungen
    Antworten: 6
    Letzter Beitrag: 26.05.2013, 17:29
  4. VB.Net Richtextbox & button pro klick = 1 text
    Von getsha im Forum .Net
    Antworten: 1
    Letzter Beitrag: 30.01.2012, 16:46
  5. [Hilfe] per Button klick .exe öffnen
    Von Zauberer im Forum .Net
    Antworten: 2
    Letzter Beitrag: 07.12.2011, 19:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.