anpera.net

anpera.net

experimental server @home
Aktuelle Zeit: Do 12 Jun, 2025 16:04

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 54 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 10:37 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Der SQL-Befehl für alle Monsterkills würde ungefähr so aussehen:

[php]$sql = "SELECT count(monsterkills) AS `kills` FROM `accounts` WHERE 1";[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 11:00 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
count zählt doch die Zeilen und summiert die Anzahl doch nicht... oder? oO

[php]$sql = "SELECT sum(monsterkills) AS `kills` FROM `accounts`";[/php]


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 12:00 
Offline
Held
Held
Benutzeravatar

Registriert: So 19 Nov, 2006 09:57
Beiträge: 231
Geschlecht: Weiblich
LoGD: http://www.trahhenbluot.de/Planetenchaos/source.php
Ich denke es geht darum, wer die meisten Monsterkills hat ... als Anzeige im Index - kein Summieren oder Zählen :?

_________________
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:
BeitragVerfasst: Fr 30 Nov, 2007 13:13 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
D.h. braucht ihr auch KEIN SUM oder COUNT! SUM zählt die Datentypen zusammen, und Count zählt wie oft der Datentyp vorkommt.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 15:09 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Zitat:
Und meine zweite Frage.. Ich würde gerne auch auf der Hauptseite stehen haben, wieviele Monsterkills es insgesamt gibt. Aber irgendwie hab ich grad keine Ahnung, wie ich das anstellen soll.. Hab mirs irgendwie überlegt, dass ich in der DB unter Accounts n neues Feld hinzufüge und dann in der battle.php irgendwas noch hinzufüg...? Aber ich weiß net was..


Wird eben doch gebraucht ;-)

Aber stimmt, es wird sum gebraucht, und nicht count. Hatte es verwechselt (Jaja, die Morgen-Krankheit ;-))


Ach ja... Eine Frage hätte ich doch auch noch. Bezieht sich das WHERE 1 einfach nur darauf, dass man nur Einträge will, die auch einen Inhalt haben? Oder wieso schreibt man es ab und an hin, und manchmal nicht? (ist mir bisher nie so ganz vor Augen geführt worde)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 15:23 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Das reicht vollkommen, wenn Du nur LIMIT 1 einträgst und gut. Hat - meiner meinung nach - den gleichen sinn. Nur würde ich es von der Syntax richtigkeit natürlich ehr bevorzugen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 15:55 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Harthas hat geschrieben:
Ach ja... Eine Frage hätte ich doch auch noch. Bezieht sich das WHERE 1 einfach nur darauf, dass man nur Einträge will, die auch einen Inhalt haben? Oder wieso schreibt man es ab und an hin, und manchmal nicht? (ist mir bisher nie so ganz vor Augen geführt worde)


WHERE 1 ist - um es einfach auszudrücken - reinste Dekoration. Die "Entsprechung" in PHP wäre sowas:

[php]if(true) {
}[/php]

Es macht keinen Sinn und hat tatsächlich nur den Zweck, darauf aufmerksam zu machen, dass man da Bedinnungen angeben könnte.

Im Grunde lässt sich jede Bedinnung wieder zu false oder true auflösen. Ein WHERE 1 = 1 ist true, also equivalent zu WHERE 1. WHERE 1 = t.field kann, je nach Datensatz, ebenfalls equivalent mit WHERE 1 sein. Oder halt mit WHERE 0. WHERE 0 lieft folglich keine Ergebnisse. WHERE 1 alle.

Kevz hat geschrieben:
Das reicht vollkommen, wenn Du nur LIMIT 1 einträgst und gut. Hat - meiner meinung nach - den gleichen sinn. Nur würde ich es von der Syntax richtigkeit natürlich ehr bevorzugen.


Nein, das ist falsch. LIMIT 1 limitiert die Datensätze auf einen. WHERE 1 tut genau... gar nichts.

PS: Ich würde das Ergebnis auf dem index im übrigen cachen und nur alle 24 Stunden aktualisieren. Bei grosser Datenbank kann das etwas länger dauern ;)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 16:17 
Offline
Freak
Freak

Registriert: So 29 Jan, 2006 09:41
Beiträge: 1927
Wohnort: Schweiz
Geschlecht: Männlich
Skype: louis.huppenbauer
Man könnte es ja theoretisch auch über die setnewday.php in die settings eintragen lassen. Oder so ^^


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 17:36 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 17 Okt, 2007 00:29
Beiträge: 93
LoGD: http://logd.calawoelfchen.de
Lori hat geschrieben:
Versuche mal das, ich gebe keine Garantie (hab es nicht ausprobiert):

[php]$sql2="SELECT monsterkills, name, sex FROM accounts WHERE monsterkills>=1";
$result2=db_query($sql2);
$name='';
$monsterkills=0;
$sex=0;
for ($i = 0; $i < db_num_rows($result2); $i ++)
{
$row2 = db_fetch_assoc($result2);
if ($row2['monsterkills']>$monsterkills)
{
$monsterkills=$row2['monsterkills'];
$name=$row2['name'];
$sex=$row2['sex'];
}
}
output("`2".($row2[sex]?"Die Spielerin":"Der Spieler")." mit den meisten Monsterkills:`6 `b$name`b`2 mit `@`i`b$monsterkills`b`i `2Monsterkill's!`n`n`n", true);
[/php]


So, das hab ich nun. Aber auf dem Index wird mein Adminchara mit 4 Monsterkills angezeigt und mein Testchara mit 20 wird nicht angezeigt. Am aktualisieren kanns nicht liegen. Wenn ich in den Wald gehe und kämpfe und mich anschließend wiede auslogge, wird die richtige Zahl abgezeigt.


Aber aus dem Rest, wie alles angezeigt wird, bin ich auch noch net wirklich schlau draus geworden..


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 17:49 
Offline
Marquis Pherae
Marquis Pherae

Registriert: Mi 09 Feb, 2005 16:01
Beiträge: 3925
Wohnort: Basel
Geschlecht: Männlich
Logisch. Da fehlt eine Sortierfunktion.

$this->bbcode_second_pass_code('', '$sql2="SELECT monsterkills, name, sex FROM accounts WHERE monsterkills>=1 ORDER BY monsterkills LIMIT 1"; ')


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 18:43 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 17 Okt, 2007 00:29
Beiträge: 93
LoGD: http://logd.calawoelfchen.de
*hüpf* Danke^^

Und könnte mir jetzt nochma jemand erklären, wie das geht, wenn ich alle anzeigen will? :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 20:33 
Offline
Held
Held
Benutzeravatar

Registriert: Mo 05 Mär, 2007 22:17
Beiträge: 270
[php]$sql = "SELECT sum(monsterkills) AS `kills` FROM `accounts`";
$result = db_query($sql);
$row = db_fetch_assoc($result);
output("Insgesamt wurden ".$row['kills']." Monster getötet.`n");
[/php]

So. Sollte hoffentlich gehen.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 21:20 
Offline
Eingeweihter
Eingeweihter

Registriert: Mi 17 Okt, 2007 00:29
Beiträge: 93
LoGD: http://logd.calawoelfchen.de
Hätte ich wohl auch selbst drauf kommen können.. Naja

Aber vielen Dank :)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Fr 30 Nov, 2007 21:37 
Offline
Freak
Freak

Registriert: Mo 06 Sep, 2004 15:17
Beiträge: 3236
Geschlecht: Männlich
Ich finde, es wäre einfacher, wenn man die getöteten Monster einfach in der "settings"- Tabelle speichert und Simpel mit der Funktion "getsetting" aufruft. Ist viel einfacher... und erspart einiges... Nur mal so am Rande.


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 54 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 17 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