PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Top 5 Liste


ProGamer11
14.02.2002, 16:52:25
Hi

will für meinen Besuchertausch Dienst eine Top5 Liste mit den meisten Referals machen.
Die DB Struktur ist so aufgebaut:

ID | geworbenvon | account | ..
=============================
1 | (leer) | Muenchbach |
2 | Muenchbach | test |
3 | Muenchbach | test 2 |
4 | test | test 3 |

Account "Muenchbach" hat also 2 Referals und Account "test" hat 1 Referal.
Jetzt soll das sortiert nach den meisten Referals angezeigt werden und auf 5 begrenzt (.. limit 5 ?).

Mit diesem Code mache ich das aber das es nach den meisten Referals sortiert geht nicht , weil ich nicht weiss man was abfragen muss :-(


<?
$a=mysql_query("select * from bannertausch");
while($b=mysql_fetch_object($a))
{

$daten1 = mysql_query("select count(*) as insg from bannertausch where geworbenvon like '$b->account' and status = '1' ");
$daten2 = mysql_fetch_array($daten1);

// Hier mache ich eine Tabelle:
print ("Account: $b->account, Referals: $daten2[insg]<br>");

}
?>

Matthias
14.02.2002, 17:50:52
So mußt du deine SQL Abfrage formulieren:

mysql_query("select geworbenvon,count(geworbenvon) as total from bannertausch group by geworbenvon order by total desc limit 5");

So mach jetzt Feierabend
Matthias

ProGamer11
14.02.2002, 19:07:21
danke, hat geklappt :D


Nachtrag:
ups, doch nicht


Der Code:

<?
$a=mysql_query("select * from bannertausch ");
while($b=mysql_fetch_object($a))
{
$i++;


$daten1 = mysql_query("select account,website,geworbenvon,count(geworbenvon) as total from bannertausch where geworbenvon='$b->account' group by geworbenvon order by total desc limit 5 ");
$daten2 = mysql_fetch_array($daten1);

//Tabelle
print ("User: $b->account Referals: $daten2[total]");

}
?>

listet die Accounts nach Account auf, aber nicht nach den Referals sortiert.

wenn ich es so mache:

<?
$a=mysql_query("select account,website,geworbenvon,count(geworbenvon) as total from bannertausch group by geworbenvon order by total desc limit 5");
while($b=mysql_fetch_object($a))
{

//Tabelle
print ("User: $b->account Referals: $b->tota]");

}
?>

dann listet er meinen Account (mit 0 Refs) als erstes und zeigt 5 Referals an, 5 ist aber die Mitgliederzahl insg...

Wo liegt mein Fehler?

Matthias
15.02.2002, 10:02:18
print ("User: $b->account Referals: $b->tota]"); <--- Schau mal hier. Wenn du total schreibst sollte es funktionieren :))))

ProGamer11
15.02.2002, 14:06:03
Hi

nein, geht leider nicht.. ich erhalte

Muenchbach: 8
x 1
x 2


jedoch habe ich keine Referals, die anderen auch nicht. :-(


hmm.. also insg. gibt es 11 Mitglieder.
Mitglied 1 bin ich, habe mir jetzt 2 Referals bei Account 1 eingestellt. Account 2 hat keine Referals und erhalte:

User: (account1) Referals: 9
User: (account2) Referals: 2

bei Account 2+3 steht lediglich unter "Geworbenvon" mein Account "Muenchbach" drin.

Ist vielleicht ein bischen kompliziert erklärt, aber ich hoffe du kannst mir weiterhelfen

Matthias
15.02.2002, 15:13:37
?? Erklär mal bitte wie die Ausgabe genau aussehen soll.
Also am besten wie oben die Tabelle hier rein schreiben (komplett) und wie es dann bei der ausgabe aussehen soll.

ProGamer11
25.02.2002, 13:41:12
Hallo

hier der Code mit Beispieldaten:


<div align="center">
<table width="523" border="1" cellpadding="0" cellspacing="0" bordercolor="#FFFFFF" bgColor="#336699">
<tr>
<td height="22" valign="top" bordercolor="#336699" colspan="4">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b>
Top5</b></font></div>
</td>
</tr>
<tr>
<td valign="top" colspan="4" bordercolor="#336699" height="21">
<div align="center"><font face="Arial, Helvetica, sans-serif"><b><font color="#FFFFFF">Bannertausch</font></b></font></div>
</td>
</tr>
<tr>
<td width="94" height="21" valign="top" bordercolor="#336699">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Platz:</b></font></div>
</td>
<td width="125" valign="top" bordercolor="#336699">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Mitglied:</b></font></div>
</td>
<td width="176" valign="top" bordercolor="#336699">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Website:</b></font></div>
</td>
<td width="118" valign="top" bordercolor="#336699">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF"><b>Referals:</b></font></div>
</td>
</tr>
<tr>
<td height="21" valign="top" bordercolor="#336699">
<div align="center"><font face="Arial, Helvetica, sans-serif" color="#FFFFFF">1
</font></div>
</td>
<td valign="top" bordercolor="#336699">
<center>
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF">test </font>
</center>
</td>
<td valign="top" bordercolor="#336699">
<center>
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF">http://www.Test.de</font>
</center>
</td>
<td valign="top" bordercolor="#336699">
<center>
<font face="Arial, Helvetica, sans-serif" color="#FFFFFF">12 </font>
</center>
</td>
</tr>
<tr>
<td height="21" colspan="4" valign="top" bordercolor="#336699">&nbsp;</td>
</tr>
</table>
</div>


Robin

Matthias
25.02.2002, 18:09:03
Hmmm.
Ist Referals auch eine Spalte in der db??
Dann wäre es ja ganz einfach.

$a=mysql_query("select account,website,geworbenvon from bannertausch order by referals desc limit 5");

Hab ichs jetzt :)))

Das ist wieder ne schwierige Geburt :))
Matthias

ProGamer11
25.02.2002, 18:15:24
Hi

ne Referals gibts nicht, diese Variable muss erst gecountet werden ;)
hehe, das wird noch was *g*

also wie hier:

ID | geworbenvon | account | ..
=============================
1 | (leer) | Muenchbach |
2 | Muenchbach | test |
3 | Muenchbach | test 2 |
4 | test | test 3 |

da muss man dann wohl erst die "geworbenvon"s der Accounts zusammenzählen und dann nach geworbenvon (limit5) anzeigen lassen, oder?

Matthias
27.02.2002, 10:49:16
Ich hab das gefühl das wir aneinander vorbei reden :))))

Aber ich glaube ich habs jetzt kapiert. Muß aber selber erst ein bißchen testen.

Schick mir mal bitte die Tabelle. Dann muß ich mir die nicht nachbauen. Du kannst mit phpmyadmin die Daten in eine Datei speichern.

Matthias