sl33p (29.05.2019)
-
29.05.2019, 03:28 #1
- Registriert seit
- 27.02.2017
- Beiträge
- 39
Thanked 2 Times in 2 Posts[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) < 1 && $_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'].' <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>
';
}
?>
https://ibb.co/7ND5NWk
-
29.05.2019, 13:47 #2
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.
-
The Following User Says Thank You to iToxic For This Useful Post:
-
29.05.2019, 14:21 #3
- Registriert seit
- 27.02.2017
- Beiträge
- 39
Thanked 2 Times in 2 PostsAW: [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)
-
29.05.2019, 15:00 #4
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.
-
The Following User Says Thank You to iToxic For This Useful Post:
sl33p (29.05.2019)
-
29.05.2019, 15:50 #5
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 283 Times in 171 PostsAW: [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!
-
-
29.05.2019, 16:37 #6
- Registriert seit
- 27.02.2017
- Beiträge
- 39
Thanked 2 Times in 2 PostsAW: [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)
-
29.05.2019, 20:24 #7
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 283 Times in 171 PostsAW: [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
-
-
29.05.2019, 20:47 #8
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.
-
The Following User Says Thank You to Manipulate For This Useful Post:
sl33p (29.05.2019)
-
29.05.2019, 21:08 #9
- Registriert seit
- 28.10.2011
- Beiträge
- 630
Thanked 283 Times in 171 PostsAW: [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.
-
02.06.2019, 12:50 #10
- Registriert seit
- 15.11.2011
- Beiträge
- 7.943
- Blog Entries
- 5
Thanked 9.376 Times in 3.215 PostsAW: [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.
-
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)
Ähnliche Themen
-
99 Fire Award Freund Klick Hilfe
Von Knuddelsspezialist im Forum Audio & VideoAntworten: 0Letzter Beitrag: 09.02.2014, 21:55 -
[MySQL | PHP] Etwas aus der Datenbank ausgeben?
Von ZarneXxX im Forum PHPAntworten: 1Letzter Beitrag: 08.09.2013, 18:40 -
[Vorstellung] Die etwas andere hilfe ;D
Von Kuchenmaster im Forum ProjektvorstellungenAntworten: 6Letzter Beitrag: 26.05.2013, 17:29 -
VB.Net Richtextbox & button pro klick = 1 text
Von getsha im Forum .NetAntworten: 1Letzter Beitrag: 30.01.2012, 16:46 -
[Hilfe] per Button klick .exe öffnen
Von Zauberer im Forum .NetAntworten: 2Letzter Beitrag: 07.12.2011, 19:34
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.