anpera.net https://anpera.homeip.net/phpbb3/ |
|
Kleines, banales SQL Problem... https://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=2121 |
Seite 1 von 1 |
Autor: | Morpheus [ So 15 Jan, 2006 05:18 ] |
Betreff des Beitrags: | Kleines, banales SQL Problem... |
Servus! Meine Schwäche ist eindeutig SQL, daher eine Frage: wenn ich einem User ein Item weg nehmen will, dann benötige ich dazu eine SQL DEL Befehl, soviel weiß ich schon mal, doch, wie sieht der aus? Vielleicht so? $this->bbcode_second_pass_code('', ' $sql="DELETE FROM items WHERE id=($item[name]=="Alte Flasche")"; db_query($sql);') Ich vermute mal, daß eher nicht ![]() Das Item, daß ich dem User weg nehmen will, steht fest, also keine Zufallsauswahl durch das Modul oder den User, ich will nur wissen, mit welchem Befehl mache ich das. Ich hab schon mal gesucht, hab auch einen Threat gefunden, in dem der Befehl erwähnt wird, aber nicht, wie er aussieht... Betsen Dank schon mal für die Mühe ![]() |
Autor: | anpera [ So 15 Jan, 2006 06:51 ] |
Betreff des Beitrags: | |
Also das Item ist bekannt und die Daten des Items stehen in einem Array mit der Bezeichnung $item ? Wenn du das ganz bestimmte Item aus der Datenbank löschen willst:$this->bbcode_second_pass_code('', 'db_query("DELETE FROM items WHERE id={$item['id']}");') Wenn du das Item dem User wegnehmen willst, ohne es aus der Datenbank zu löschen:$this->bbcode_second_pass_code('', 'db_query("UPDATE items SET owner=0 WHERE id={$item['id']}");') Wenn du die fortlaufende Item-ID (id) nicht hast, oder die Daten des Items nicht vollständig bekannt sind, brauchst du ein paar zusätzliche Infos. Meine Annahmen fürs Beispiel: Itemname: Alte Flasche Besitzer: Der aktuelle Spieler Itemklasse: Muell ID dieses Items in der Datenbank: unbekannt$this->bbcode_second_pass_code('', 'db_query("DELETE FROM items WHERE class='Muell' AND name='Alte Flasche' AND owner={$session['user']['acctid']} LIMIT 1");')Wenn du alle alten Flaschen des Spielers löschen willst, lass das "LIMIT 1" weg. Für ein Recyclingsystem (Itemklasse "Pfand") könntest du bei der Flaschenrückgabe folgendes auf die Datenbank loslassen:$this->bbcode_second_pass_code('', 'UPDATE items SET owner=0, name='Neue Flasche' WHERE class='Pfand' AND name='Alte Flasche' AND owner={$session['user']['acctid']}')Der Nachteil bei diesem System ist, dass die Anzahl der Flaschen entweder durch den Admin festgelegt ist (also jede Flasche von Hand erstellt werden muss), oder durch ein Script ständig wächst. Eine Alternative wäre es, mit Prototypen zu arbeiten, wie das bei Beute mit Beute.Prot der Fall ist... aber das ist schon wieder ne gaaaaanz andere Geschichte |
Autor: | Morpheus [ So 15 Jan, 2006 08:29 ] |
Betreff des Beitrags: | |
![]() ![]() |
Seite 1 von 1 | Alle Zeiten sind UTC + 1 Stunde |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |