anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Sa 23 Feb, 2019 12:09

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Multis in der Bio
BeitragVerfasst: Mo 28 Mär, 2011 23:28 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mi 23 Feb, 2011 19:50
Beiträge: 26
LoGD: http://newheaven-logd.de
Skype: silverfirefoxi
Hallo, ich bräuchte Hilfe weil ich einfach nicht weiter komme.

Ich würde gern einfach die Multis von jedem Spieler in die Bio einbauen, das jeder der die Bio öffnet sieht, welche Multis der gewählte User noch hat, wenn dieser will das seine Multis in der Bio angezeigt werden oder nicht. Wobei das letzte ja recht leicht zu bewerkstelligen ist.

Ich hatte mich bisher an der Multiuseranzeige in den Logs orientiert und es klappt auch soweit das die Multis angezeigt werden, nur mein Problem ist, es werden alle angezeigt und nicht nur von einer Person.

Hoffe ihr könnt mir da irgendwie helfen.


PHP:
if ($_GET['searchby']!='ip') {
$sql = 'SELECT uniqueid FROM accounts WHERE uniqueid!="" GROUP BY uniqueid HAVING COUNT(*) > 1';
$result = db_query($sql) or die(db_error(LINK));
while ($row = db_fetch_assoc($result)) {
$in_id .= ',"'.$row['uniqueid'].'"';
}
}


$ip = $id = $user = array();
$sql = 'SELECT name,lastip,uniqueid FROM accounts WHERE (lastip IN (-1'.$in_ip.') OR uniqueid IN (-1'.$in_id.')) AND locked="0" ORDER BY acctid ASC';
$result = db_query($sql) or die(db_error(LINK));

while ($row = db_fetch_assoc($result)) {
if ((!isset($id[$row['uniqueid']]) || $_GET['searchby']=='ip') && (!isset($ip[$row['lastip']]) || $_GET['searchby']=='id')) {
// if ($_GET['searchby']!='id') $ip[$row['lastip']] = count($user);
if ($_GET['searchby']!='ip') $id[$row['uniqueid']] = count($user);
$user[] = array($row);
}
elseif (isset($id[$row['uniqueid']])) {
$ip[$row['lastip']] = $id[$row['uniqueid']];
$user[$id[$row['uniqueid']]][] = $row;
}
else {
$id[$row['uniqueid']] = $ip[$row['lastip']];
$user[$ip[$row['lastip']]][] = $row;
}
}
if ($session[user][superuser]>=2){
output('`n`bMultiaccounts`b`nNaaa, wer spielt denn hier noch wen?`n`n');

output('<table><tr><td>',true);
foreach ($user AS $list) {
if (count($list)<2) continue;
$tmpstr = '';
$ip = $id = $acct = array();
foreach ($list AS $val) {


$tmpstr .= ('<tr><td></td>

<td>'.$val['name'].'</td>
</tr>');
}

output("<table align='center' width='100%'><tr><td>&nbsp;</td>
<td>`bName`b</td>

</tr>",true);
output($tmpstr,true);

output('</table>`n`n',true);
output('</form>',true);
}
output('</td></tr></table>',true);

}



Das war der Code bisher so weit den ich verwende. :(


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Di 29 Mär, 2011 08:57 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 12 Aug, 2009 18:11
Beiträge: 65
Geschlecht: Männlich
LoGD: http://www.plueschdrache.de
Hallo,
du bräuchtest in dem Fall einfach nur die IP/UID des einen betreffenden User nehmen und damit die accounts nach Treffern durchsuchen.
Ich würde da aber von abraten, denn da sind ja falsche Anzeigen aufgrund von einem gemeinsamen Internetanschluss, Besuch bei nem Freund etc. ja schon abzusehen, wie eben in der Grotte auch. Biete den Usern vielleicht besser die Möglichkeit, einfach manuell in den prefs einen anderen Char als Multi einzutragen.

Gruß
Charon


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Di 29 Mär, 2011 12:01 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mi 23 Feb, 2011 19:50
Beiträge: 26
LoGD: http://newheaven-logd.de
Skype: silverfirefoxi
Man könnte das doch über die E-Mail Adresse laufen lassen, da würde es zu weniger Fehlern kommen da wenn sich Leute mit der gleichen anmelden dann auch gleich zugeordnet werden oder? Nur wie müsste man die Anfrage gestalten?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Di 29 Mär, 2011 18:25 
Offline
Freak
Freak
Benutzeravatar

Registriert: Di 01 Mai, 2007 13:57
Beiträge: 1634
Wohnort: Dortmund.
Geschlecht: Männlich
LoGD: Lokal.
Skype: josh.hoiul
Wieso den entsprechendes Multi's nicht einfach die AccountID des Hauptcharakters zuweisen und dann via AccountID auslesen? :?

_________________
Never change a running system. Bullshit! ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Di 29 Mär, 2011 19:52 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 12 Aug, 2009 18:11
Beiträge: 65
Geschlecht: Männlich
LoGD: http://www.plueschdrache.de
@Rattentod
Ich sehe auch nicht so den Nutzen dieser Lösung, aber wenn du das gerne über die Mailadresse machen möchtest, sollte es so funktionieren:

1.) In der oben stehen langen Abfrage (mit allen Daten für den zu betrachtenden Char) das Feld emailaddress ergänzen

2.) zugehörige Chars abfragen (und natürlich noch eine Ausgabe dazu basteln)
Code:
"SELECT name FROM accounts WHERE emailaddress='".$row['emailaddress']."' AND acctid!=".$row['acctid']." ORDER BY name ASC"


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Di 29 Mär, 2011 20:59 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mi 23 Feb, 2011 19:50
Beiträge: 26
LoGD: http://newheaven-logd.de
Skype: silverfirefoxi
So hab ich das bisher gebaut nur ich komme bei dem Output nicht klar, es zeigt alle User die bisher bestehen schön in Gruppen sortiert an.
Also meine Multis und die meiner Freundin, in je einzelnen Gruppen, aber wie bekomme ich das nur hin das nur meine oder nur ihre wenn sie ihre Bio aufmacht sehen kann? Daran verzweifle ich gerade. :bash: :bash:


PHP:
$sql = 'SELECT emailaddress FROM accounts WHERE emailaddress!="" AND acctid!= ".$row[acctid]." ';
$result = db_query($sql) or die(db_error(LINK));
while ($row = db_fetch_assoc($result)) {
$in_id .= ',"'.$row['emailaddress'].'"';
}




$sql = 'SELECT name,emailaddress FROM accounts WHERE emailaddress IN (-1'.$in_id.') AND locked="0" ORDER BY acctid ASC';
$result = db_query($sql) or die(db_error(LINK));

while ($row = db_fetch_assoc($result)) {
if (!isset($id[$row['emailaddress']])) {
$id[$row['emailaddress']] = count($user);
$user[] = array($row);
}
elseif (isset($id[$row['emailaddress']])) {
$ip[$row['lastip']] = $id[$row['emailaddress']];
$user[$id[$row['emailaddress']]][] = $row;
}

}
if ($session[user][superuser]>=2){
output('`n`bMultiaccounts`b`nNaaa, wer spielt denn hier noch wen?`n`n');

output('<table><tr><td>',true);
foreach ($user AS $list) {
if (count($list)<2) continue;
$tmpstr = '';
$ip = $id = $acct = array();
foreach ($list AS $val) {


$tmpstr .= ('<tr><td></td>

<td>'.$val['name'].'</td>
</tr>');
}

output("<table align='center' width='100%'><tr><td>&nbsp;</td>
<td>`bName`b</td>

</tr>",true);
output($tmpstr,true);

output('</table>`n`n',true);
output('</form>',true);
}
output('</td></tr></table>',true);

}


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Di 29 Mär, 2011 22:14 
Offline
Held
Held
Benutzeravatar

Registriert: So 19 Nov, 2006 09:57
Beiträge: 231
Geschlecht: Weiblich
LoGD: http://www.trahhenbluot.de/Planetenchaos/source.php
Wieso uziehst du alle Multis aus der Tabelle? Du möchtest doch das für jede Bio die anderen Charas des Users (in der Bio) angezeigt werden?

Dann suche doch nur die Charas aus der Accounts raus ...


PHP:
$sql = 'SELECT * FROM accounts WHERE emailaddress='.$row[emailaddress'].' AND locked=0';

_________________
Das Lesen im Bett zeugt von völliger Hingabe an die Kunst: Man überlässt es dem Dichter, wann man einschläft.
Ernst R. Hauschka, deutscher Aphoristiker (geb. 1926)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Di 29 Mär, 2011 22:43 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 12 Aug, 2009 18:11
Beiträge: 65
Geschlecht: Männlich
LoGD: http://www.plueschdrache.de
Charon hat geschrieben:
1.) In der oben stehen langen Abfrage (mit allen Daten für den zu betrachtenden Char) das Feld emailaddress ergänzen

2.) zugehörige Chars abfragen (und natürlich noch eine Ausgabe dazu basteln)
Code:
"SELECT name FROM accounts WHERE emailaddress='".$row['emailaddress']."' AND acctid!=".$row['acctid']." AND locked=0 ORDER BY name ASC"

(das "AND locked=0" aus Loris Vorschlag ergänzt, macht Sinn)

Original Bio nehmen und wie beschrieben modifizieren. Das ganze andere Zeug raus, da der Code nunmal dafür gedacht ist, um ALLE Multis des Servers rauszusuchen... Für diesen Zweck nicht nötig und viel zu aufwändig.
Was meinem Vorschlag nur noch fehlt, ist die Ausgabe der Accounts (im Beispiel von mir nur Namen, ggf. Abfrage um weitere Felder ergänzen). Wie man eine Abfrage ausführt und das Ergebnisarray in einer Schleife auswertet, kannst du einfach an diversen anderen Stellen in den Skripten abgucken.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Multis in der Bio
BeitragVerfasst: Mi 30 Mär, 2011 13:13 
Offline
Lehrling
Lehrling
Benutzeravatar

Registriert: Mi 23 Feb, 2011 19:50
Beiträge: 26
LoGD: http://newheaven-logd.de
Skype: silverfirefoxi
Hab das so nun ganz simpel gelöst und funktioniert auch. Danke für die Hilfe. :)

PHP:
output("$row1[colbio2]Die Multis von $row[name]$row1[colbio2]:`n");
$sql="SELECT name FROM accounts WHERE emailaddress='".$row['emailaddress']."' AND acctid!=".$row['acctid']." AND locked=0 ORDER BY name ASC";
$result = db_query($sql);
while ($row = db_fetch_assoc($result)){

output("`n$row[name]");
}


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

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 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:  
cron
POWERED_BY
Deutsche Übersetzung durch phpBB.de
anpera.net - Impressum