anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Mo 09 Jun, 2025 22:33

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
BeitragVerfasst: Di 07 Nov, 2006 21:18 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 28 Aug, 2004 18:48
Beiträge: 1712
Ich habe folgendes Problem..

ich habe ja wie bekannt die Dasher Gilden bei mir modifiziert laufen, d.h. ich habe sie speziell für Silienta mit nützlichen Funktionen erweitert. Dazu gehört auch das automatische Kicken von inaktiven Gildenleichen über die setnewday.php


der Ausschnitt den ich bisher nutze sieht so aus:


$this->bbcode_second_pass_code('', '// this now includes the database cleanup from guild.php kicken von inaktiven Gildenmembern
//by Rikkarda@silienta-logd.de for the dasher guilds
//unter 1 dk
$old2 = getsetting("expireoldguild",10);
//über 1 dk
$old3 = getsetting("expireoldguilddk",25);
//unter 1 dk
$sql2 = "UPDATE `accounts` SET `guildid`='0',`guildrank`='0',`goldafterdk`='0',`gold`=`gold`+`cg_spendgold`-`cg_getgold`,`gems`=`gems`+`cg_spendgems`-`cg_getgems`,`cg_spendgems`='0', `cg_getgems`='0', `cg_spendgold`='0', `cg_getgold`='0' WHERE `guildid`>'0' AND `dragonkills`<'1' AND `laston` < '".date("Y-m-d H:i:s",strtotime("-$old2 days"))."'";
db_query($sql2);
//über 1 dk
$sql3 = "UPDATE `accounts` SET `guildid`='0',`guildrank`='0',`goldafterdk`='0',`gold`=`gold`+`cg_spendgold`-`cg_getgold`,`gems`=`gems`+`cg_spendgems`-`cg_getgems`,`cg_spendgems`='0', `cg_getgems`='0', `cg_spendgold`='0', `cg_getgold`='0' WHERE `guildid`>'0' AND `dragonkills`>='1' AND `laston` < '".date("Y-m-d H:i:s",strtotime("-$old3 days"))."'";
db_query($sql3);

//end by Rikkarda')


funktioniert und erfüllt seinen Zweck bei "normalen" Gildenmitgliedern.. nun mein Problem. Ist das inaktive Gildenmitglied im Vorstand der Gilde, werden zwar alle o.g. Daten gelöscht und er zählt als "Gildenlos" ABER er steht noch immer als Vorstandsmitglied in der Gilde..


die 2. Tabelle die dies nun wäre, wäre die Tabelle lotbd_guilds in der unter den 3 kürzeln des Vorstands die acctid des Vorstandmitgliedes eingetragen wird. also entweder feld GuildLeader oder HeadOfMembership oder HeadOfWar . ist es möglich in meine oben gemachte Abfrage auch dafür zu sorgen, dass das entsprechende Feld in der Gildenhaupttabelle auf 0 gesetzt wird?



also das Feld, wo die acctid des inaktiven Gildenmembers drin ist zu leeren?




irgendwie will mein kopf da nimmer ;) wäre dankbar falls mir wer da weiterhelfen kann^^



lg Rikka

_________________
~Inaktiv und Abwesend solange Mysql hier Moderatorenrechte hat~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di 07 Nov, 2006 21:52 
Offline
Profi
Profi
Benutzeravatar

Registriert: Do 25 Aug, 2005 00:53
Beiträge: 135
LoGD: http://schwarzer-drache.cwsurf.de/logd/source.php
Also das mit dem update von 2 Tabellen so wie du es dir vorstellst geht nicht...

aber ich hab hier mal kutz was gebastelt, probiers mal damit^^
(ist natürlich ungetestet)

{gilden_tabelle} musste durch den namen der gildentabelle ersetzen und
{gilden_id} eben duch das Namen des id-feldes^^
weiß ja nicht, wie die bei dir heißen...

und beim $array musste gucken ob ich das richtige reingeschrieben hab^^

[php]<?php

// unter 1 dk
$old2 = getsetting("expireoldguild",10);
// über 1 dk
$old3 = getsetting("expireoldguilddk",25);
// Hier die Felder der Gildentabelle
$array = array('GuildLeader','HeadOfMembership','HeadOfWar');

//unter 1 dk
$sql = "SELECT acctid, guildid FROM accounts WHERE `guildid`>'0' AND `dragonkills`<'1' AND `laston` < '".date("Y-m-d H:i:s",strtotime("-$old2 days"))."'";
$result = db_query($sql);
while ($row = db_fetch_assoc($result)){
$sql = "UPDATE `accounts` SET
`guildid`='0',
`guildrank`='0',
`goldafterdk`='0',
`gold`=`gold`+`cg_spendgold`-`cg_getgold`,
`gems`=`gems`+`cg_spendgems`-`cg_getgems`,
`cg_spendgems`='0',
`cg_getgems`='0',
`cg_spendgold`='0',
`cg_getgold`='0'
WHERE acctid=".$row['acctid'];
db_query($sql);
reset($array);
while ($field=current($array)){
$sql = "UPDATE {gilden_tabelle} SET $field=0 WHERE {gilden_id}='".$row['guildid']."' $field=".$row['acctid'];
db_query($sql);
next($array);
}
}

//über 1 dk
$sql = "SELECT acctid, guildid FROM accounts WHERE `guildid`>'0' AND `dragonkills`>='1' AND `laston` < '".date("Y-m-d H:i:s",strtotime("-$old3 days"))."'";
$result = db_query($sql);
while ($row = db_fetch_assoc($result)){
$sql = "UPDATE `accounts` SET
`guildid`='0',
`guildrank`='0',
`goldafterdk`='0',
`gold`=`gold`+`cg_spendgold`-`cg_getgold`,
`gems`=`gems`+`cg_spendgems`-`cg_getgems`,
`cg_spendgems`='0',
`cg_getgems`='0',
`cg_spendgold`='0',
`cg_getgold`='0'
WHERE acctid=".$row['acctid'];
db_query($sql);
reset($array);
while ($field=current($array)){
$sql = "UPDATE {gilden_tabelle} SET $field=0 WHERE {gilden_id}=".$row['guildid']." $field=".$row['acctid'];
db_query($sql);
next($array);
}
}

?>[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 08 Nov, 2006 15:24 
Offline
Freak
Freak
Benutzeravatar

Registriert: Sa 28 Aug, 2004 18:48
Beiträge: 1712
nachher mal testet :)

_________________
~Inaktiv und Abwesend solange Mysql hier Moderatorenrechte hat~


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Mi 08 Nov, 2006 17:02 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
[php]$sql = "UPDATE {gilden_tabelle} SET $field=0 WHERE {gilden_id}=".$row['guildid']." $field=".$row['acctid']; [/php]

Fehlt ein AND:

[php]$sql = "UPDATE {gilden_tabelle} SET $field=0 WHERE {gilden_id}=".$row['guildid']." AND $field=".$row['acctid']; [/php]


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 16 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen
Du darfst keine Antworten zu Themen in diesem Forum erstellen
Du darfst deine Beiträge in diesem Forum nicht ändern
Du darfst deine Beiträge in diesem Forum nicht löschen
Du darfst keine Dateianhänge in diesem Forum erstellen

Suche nach:
Gehe zu:  
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum