Menü

Login

Aktuelle Version

Forum > Catering TOP 500, SQL Problem... *

DOTLAN Intranet / Portal >> Konfiguration, Erweiterungen, Addons > Catering TOP 500, SQL Problem...
Antwort erstellen
Autor Thema: Catering TOP 500, SQL Problem...
haenno
09.03.2006 um 13:18 QuoteProfileSend PM
NEW

Clan: baboon1.de
Postings: 210

Hossa,

vielleicht kann ja jemand hier helfen...

Code:
SELECT konto_id , SUM(credits)*-1 as umsatz 
FROM catering_transaction
WHERE short !="Einzahlung" AND short !="Auszahlung"
GROUP BY konto_id
ORDER BY umsatz DESC
LIMIT 0,500;


das wirft mir dann auch brav die gewünschte top 500 der umnsatzstärksten user aus.

leider scheitere ich an dem JOIN was mir aus der "catering_transaction.konto_id" den "user.nick" macht.

kanns jemand vervollständigen?

danke & gruß,
haenno
 
Metus
09.03.2006 um 13:36 QuoteProfileSend PM
NEW

Clan: Zocker Group Siegen e.V.
Postings: 244

Ich kann dir leider nicht helfen, aber wäre super wenn du das zur Verfügung stellst wenn es fertig ist
 
haenno
09.03.2006 um 14:37 QuoteProfileSend PM
NEW

Clan: baboon1.de
Postings: 210

Lasst Ihr eure Bestellungen auch von Party zu Party drin? Also dauerhaft quasi...
 
Metus
09.03.2006 um 14:56 QuoteProfileSend PM
NEW

Clan: Zocker Group Siegen e.V.
Postings: 244

Gibt ja keine andere Möglichkeit, oder?
Also wenn ich als Gast bei "Meine Bestellungen" oder so gucke, sind da die Bestellungen von allen Lans aufgelistet. Wäre mir eigentlich lieber wenn da nur die aktuellen stünden, aber für die Stats ist das natürlich nicht schlecht.

[Editiert von Metus am 09.Mar.2006 um 14:57]
 
haenno
09.03.2006 um 15:03 QuoteProfileSend PM
NEW

Clan: baboon1.de
Postings: 210

Metus hat folgendes geschrieben:
aber für die Stats ist das natürlich nicht schlecht.




Die Abfrage oben funktioklappt schon, einfach in den phpmyadmin werfen und staunen Nur die Usernamen musst du halt per Hand raussuchen...

Werf doch mal die "overall-top10" bei euch in die News

 
Griffon
09.03.2006 um 19:01 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

Wie wäre es mit einem JOIN?
Code:
SELECT konto_id , SUM(credits)*-1 as umsatz, user.nick 
FROM catering_transaction
LEFT JOIN user ON user.id=catering_transaction.konto_id
WHERE short !="Einzahlung" AND short !="Auszahlung"
GROUP BY konto_id
ORDER BY umsatz DESC
LIMIT 0,500;

Aber ich persönlich würde eher auf die Bestellungen gehen und nicht die Transaktionen
 
haenno
09.03.2006 um 21:36 QuoteProfileSend PM
NEW

Clan: baboon1.de
Postings: 210

hatte mich ja an dem join versucht, aber geklappert hats nich :x

hier dann mal die finale abfrage:
Code:
SELECT SUM(price) as umsatz, user_id, user.nick
FROM catering_order_part
LEFT JOIN user ON user.id=catering_order_part.user_id
WHERE user_id > 0
GROUP BY user_id
ORDER BY umsatz DESC
LIMIT 0,500;

 
haenno
09.03.2006 um 22:49 QuoteProfileSend PM
NEW

Clan: baboon1.de
Postings: 210

Hier mal eine einfache Variante als einzelne Seite...
Code:
<?
include("../global.php");

$DB->query("
SELECT SUM(price) as umsatz, user_id, user.nick
FROM catering_order_part
LEFT JOIN user ON user.id=catering_order_part.user_id
WHERE user_id > 0
GROUP BY user_id
ORDER BY umsatz DESC");

$output = "<table cellspacing=7 cellpadding=7 border=0><tr><td nowrap valign=\"top\">\n";
$output .= $HTML->message("Mampfkönige","Jaja, lecker kanns schon sein.<br>Seht und staunt was ein<br>Mensch allein an ein paar<br>Tagen alles verdauen kann ");
$output .= "</td><td nowrap><table cellspacing=1 cellpadding=4 border=0>\n";
$output .= "<tr align=left><TD nowrap class=\"msghead\"><b>#</b></td><td nowrap class=\"msghead\"><b>Nick</b></td><TD nowrap class=\"msghead\"><b>Umsatz</b></td></tr>\n";
$platz=1;

while($cattop = $DB->fetch_array()) {
$output .= "<tr><td nowrap class=\"msgrow2\">".$platz."</td><td nowrap class=\"msgrow2\"><b><a href=\"".$S->link(sprintf($USER->link['userdetails'],$cattop['user_id']))."\">".htmlentities($cattop['nick'])."</a></b></td><td nowrap class=\"msgrow2\">".htmlentities($cattop['umsatz'])." Euro</td></tr>\n";
$platz=$platz+1;
}

$output .= "</table></td></tr></table>";


$PAGE->htmltitle="Catering Highscore";
$PAGE->sitetitle="Catering Highscore";

$PAGE->render($output);
?>


Das mit dem Einbauen einer extra Zeile im Profil "Catering Umsatz" hat nicht geklappt -- Ist doch ein bissel anspruchsvoller der custom.user was brauchbares zu entlocken


 
haenno
16.03.2006 um 11:10 QuoteProfileSend PM
NEW

Clan: baboon1.de
Postings: 210

Könnte ich mir jetzt zu dieser PHP Datei eigentlich auch selbst ein Template stricken?
 
DerMega
16.03.2006 um 13:10 QuoteProfileSend PM
NEW

Clan: Mitten aus Deutschland e.V.
Postings: 438

Megaaaaa
na klar
das geht.

nur ich weiss jezze net, wie der Griffon die Templates zerrt.
Mit Eval macht ers auf jeden fall.

Griffon? dein Part
 
Griffon
16.03.2006 um 19:47 QuoteProfileSend PM

NEW

Clan: dotlan.net
Postings: 1252

Code:
# template

<div>
<bla>{$bla}</bla>
<fasel>{$foobar['fasel']}</fasel>
</div>

# -----------------

$bla = "wert1";
$foobar = array(
'fasel' => 'wert2'
);
eval("\$output = \"".$HTML->gettemplate("catering_blafasel")."\";");

 
DerMega
17.03.2006 um 12:29 QuoteProfileSend PM
NEW

Clan: Mitten aus Deutschland e.V.
Postings: 438

Megaaaaa
Griffon hat folgendes geschrieben:
Code:
# template

<div>
<bla>{$bla}</bla>
<fasel>{$foobar['fasel']}</fasel>
</div>

# -----------------

$bla = "wert1";
$foobar = array(
'fasel' => 'wert2'
);
eval("\$output .= \"".$HTML->gettemplate("catering_blafasel")."\";");


Und immer an den Punkt denken, wenn ihr mehrere Templates einbinden wollt.
 
haenno
17.03.2006 um 13:00 QuoteProfileSend PM
NEW

Clan: baboon1.de
Postings: 210

Und immer schön den Teller leer machen, sonst gibts schlechtes Wetter?!
 
[ Antwort erstellen ]