Nur 5 Einträge aus DB auslesen

Hi. Das ist ja genau das Problem. Ich weiß nicht bei welcher SQL Abfrage ich die Begrenzung setzen muss. Ich habe das Limit bei allen drei Abfragen versucht zu setzen und bei keiner funktioniert es.

Die Variablen welche ausgegeben werden sind folgende:

PHP:
//TEAMNAME
$teamname='<a href="'.(!$one ? 'index.php?site=clans&action=show&clanID='.$teamID.'"><b><font color="#39669e">'.$clan['teamname'] : 'index.php?site=profile&id='.$teamID.'">'.$clan['teamname']).'</font></b></a>';
//ANZAHL AN CUPS		
$joincups='<font color="#808080">'.$clan['joincups'].'</font>';
//MEDAILLIEN
$awards=$award1.$award2.$award3;

Die SQL Abfragen sind folgende:

PHP:
$ergebnis = safe_query("SELECT * FROM ".PREFIX."cup_clans WHERE 1on1='$one' ORDER BY clanID DESC LIMIT 0,".$halloffamebox);
while($db=mysql_fetch_array($ergebnis)) {
	if(in_array($db[clanID], $used_teams, true)) continue;
	
	if(!$one){
		$ergebnis2 = safe_query("SELECT * FROM ".PREFIX."cup_all_clans WHERE ID = '".$db[clanID]."' ORDER BY name ASC");		
		$ds=mysql_fetch_array($ergebnis2);
	}
	$awards_sql=safe_query("SELECT * FROM ".PREFIX."cup_clans WHERE clanID = '".$db[clanID]."' &&  1on1='$one'");

wobei "$halloffamebox" im Moment auf 50 gesetzt ist, damit mir die 5 angezeigt werden. Wenn ich die Zahl veringere auf zb 20 werden 3 angezeigt. Wenn ich 5 einstelle, wird garkeiner mehr angezeigt.

LG Chris
 
Hi,

der Punkt ist, dass hier niemand Dein DB-Design kennt. Wenn Du selbst schon wild herumrätst...
Man könnte allerdings vermuten, dass genau das das Problem ist. DB-Abfragen innerhalb von Schleifen über das Ergebnis von anderen DB-Abfragen sind immer ein ganz schlechtes Zeichen. Du solltest das in einer Abfrage über einen JOIN lösen. Wenn das nicht möglich ist, ist an der Struktur was faul.

LG
 
Hi

du müsstest doch wissen wo alle Clans drinstehen, die du für den Highscore benötigst? Dann wäre der Code folgender:
PHP:
$query = mysql_query("SELECT * FROM highscore_clans ORDER BY punkte DESC LIMIT 0,5") or die(mysql_error());
 
Zurück