SQL Abfrage - Neusten Eintrag wählen

fixxxxxi

Erfahrenes Mitglied
Ich habe eine Datenbank, in der stehen folgende Felder: banID, userID, esepuid, enddate, endtime, grund - Die Datenbank wird ausgelesen, und bei einem Eintrag werden die Informationen mit einem Mouseover ausgegeben und der Spieler als gesperrt angezeigt. Funktioniert soweit auch.

ABER

Wenn jemand 2 mal, oder öfter geloggt wurde, und die esepuid demzufolge 2 mal angezeigt wird, dann wird er nicht mehr als gesperrt angezeigt. Nun habe ich mir überlegt, das eigentlich in der SQL Abfrage

PHP:
$ergebnis=safe_query("SELECT enddate, esepuid, grund FROM ".PREFIX."user_banlist WHERE userID='$id' ");
if(mysql_num_rows($ergebnis)){
$ds=mysql_fetch_array($ergebnis);
}

$ergebnis=safe_query("SELECT enddate, esepuid, grund FROM ".PREFIX."user_banlist WHERE esepuid = '".$db['value']."'");
if(mysql_num_rows($ergebnis)){
$ds=mysql_fetch_array($ergebnis);
}

eigentlich nur der neuste Eintrag abgerufen wurden muss, da auch die aktuelle Bandauer angezeigt wird. Nur wie kann ich, dies in der SQL-Abfrage abfragen?

Die PHP dazu sieht folgendermaßen aus:

PHP:
//...
]// clanname, clanhp, clantag, clanfunktion (leader oder member) tonacht

$ton8ergebnis=safe_query("SELECT * FROM ".PREFIX."user WHERE userID='$id' ");
$ds=mysql_fetch_array($ton8ergebnis);

		$ton8clannr_sql = safe_query("SELECT function, userID, clanID FROM ".PREFIX."cup_clan_members WHERE userID = '".$ds['userID']."'");
		if(mysql_num_rows($ton8clannr_sql)){
			$num=1;
			while($db=mysql_fetch_array($ton8clannr_sql)){
				
				if($num==1)
					$ton8clannr=''.$db['clanID'];
				if($num==1)
					$ton8funktion=' '.$db['function'];
					
						$ergebnis = safe_query("SELECT * FROM ".PREFIX."cup_all_clans WHERE ID = $ton8clannr");		
	while($ds=mysql_fetch_array($ergebnis)) {

		$ton8clanname = '<a href="index.php?site=clans&action=show&clanID='.$ton8clannr.'">'.$ds[name].'</a>';
		$ton8clantag = $ds[clantag]; 
		$ton8clanhp = '<a target="_blank" href="'.$ds[clanhp].'">'.$ds[clanhp].'</a>';
    $ton8status='<font title="Dieser Spieler ist spielberechtigt!">[AKTIVER SPIELER]</font>';}
			}
		}else{
			$ton8clantag='n/a';
			$ton8clanhp='n/a';
			$ton8clanname='keinem Team gejoint';
      $ton8funktion='n/a';
      $ton8status='<font title="Dieser Spieler ist keinem Team gejoint!">[INAKTIVER SPIELER]</font>';}

// ese puid, eseban tonacht, banlist

$ergebnisdw=safe_query("SELECT userID FROM ".PREFIX."user WHERE userID='$id' ");
$dw=mysql_fetch_array($ergebnisdw);

		$gameacc_sql = safe_query("SELECT type, value FROM ".PREFIX."user_gameacc WHERE userID = '".$dw['userID']."'");
		if(mysql_num_rows($gameacc_sql)){
			$num=1;
			
			while($db=mysql_fetch_array($gameacc_sql)){



$ergebnis=safe_query("SELECT userID, esepuid FROM ".PREFIX."user_banlist WHERE esepuid = '".$db['value']."'");
$sql_id=mysql_fetch_array($ergebnis);

$ergebnis=safe_query("SELECT enddate, esepuid, grund FROM ".PREFIX."user_banlist WHERE userID='$id' ");
if(mysql_num_rows($ergebnis)){
$ds=mysql_fetch_array($ergebnis);
}

$ergebnis=safe_query("SELECT enddate, esepuid, grund FROM ".PREFIX."user_banlist WHERE esepuid = '".$db['value']."'");
if(mysql_num_rows($ergebnis)){
$ds=mysql_fetch_array($ergebnis);
}

if($ds['grund']== '0') $bangrund = 'Generic Base Injection Type \'X\''; 
if($ds['grund']== '0') $bandauer = '365';
if($ds['grund']== '1') $bangrund = 'Generic Radar Typ \'X\'';
if($ds['grund']== '1') $bandauer = '365';
if($ds['grund']== '2') $bangrund = 'using incorrect Cpu-Speed Parameter'; 
if($ds['grund']== '2') $bandauer = '20';
if($ds['grund']== '3') $bangrund = 'blacklisted and altered file \'Amb*\''; 
if($ds['grund']== '3') $bandauer = '20';
if($ds['grund']== '4') $bangrund = 'Modified Render Class'; 
if($ds['grund']== '4') $bandauer = '365';
if($ds['grund']== '5') $bangrund = 'Altered Engine Class'; 
if($ds['grund']== '5') $bandauer = '365';
if($ds['grund']== '6') $bangrund = 'Modified Engine Class'; 
if($ds['grund']== '6') $bandauer = '20';
if($ds['grund']== '7') $bangrund = 'Altered Engine Class - \'X\''; 
if($ds['grund']== '7') $bandauer = '20';
if($ds['grund']== '8') $bangrund = 'Missing Package DLL'; 
if($ds['grund']== '8') $bandauer = '20';
if($ds['grund']== '9') $bangrund = 'Missing Package Handle'; 
if($ds['grund']== '9') $bandauer = '20';
if($ds['grund']== '10') $bangrund = 'Unknown Package DLL'; 
if($ds['grund']== '10') $bandauer = '20';
if($ds['grund']== '11') $bangrund = 'Modified Player Class'; 
if($ds['grund']== '11') $bandauer = '20';
if($ds['grund']== '12') $bangrund = 'Modified Player Skin'; 
if($ds['grund']== '12') $bandauer = '20';
if($ds['grund']== '13') $bangrund = 'Altered Engine Class - Render Device'; 
if($ds['grund']== '15') $bandauer = '20';
if($ds['grund']== '14') $bangrund = 'Modified Engine Class'; 
if($ds['grund']== '14') $bandauer = '20';
if($ds['grund']== '15') $bangrund = 'Invalid Parameter - SoundVolume'; 
if($ds['grund']== '15') $bandauer = '20';
if($ds['grund']== '16') $bangrund = 'blacklistet process \'X\' '; 
if($ds['grund']== '16') $bandauer = '365';
if($ds['grund']== '17') $bangrund = 'System Hack (Kernel Hook)'; 
if($ds['grund']== '17') $bandauer = '365';

$timestamp = strtotime ($ds['enddate']); 
$neue_timestamp = $timestamp - 86400*$bandauer; 
$banstart = date("Y-m-d", $neue_timestamp); 

$now = date("Y-m-d");

if($ds['enddate']>$now)

$ton8status='<a href="#" class="tt"><font color="red">[GESPERRTER SPIELER]</font>
      <span class="tooltip">
        <span class="top"><strong>Zusatzinformationen:</strong><br><br></span>
        <span class="middle"><font color="red">ESE BAN bis '.$ds['enddate'].'</font> <br><br>Cheat/Grund: '.$bangrund.' <br><br> Geloggt am: '.$banstart.'<br> Geloggte PUID: '.$ds['esepuid'].' </span>
        <span class="bottom"><br><img src="/images/ese_banlist.gif" border="0"><br><br></span>
      </span>
    </a>';
    
}}

		$gameacc_sql = safe_query("SELECT type, value FROM ".PREFIX."user_gameacc WHERE userID = '".$dw['userID']."'");
		if(mysql_num_rows($gameacc_sql)){
			$num=1;
			
			while($db=mysql_fetch_array($gameacc_sql)){


$ergebnis=safe_query("SELECT enddate, esepuid, grund FROM ".PREFIX."user_banlist WHERE userID='$id' ");
if(mysql_num_rows($ergebnis)){
while($ds=mysql_fetch_array($ergebnis)){


$now = date("Y-m-d");
if($ds['enddate']<$now)

if($ds['grund']== '0') $bangrund = 'Generic Base Injection Type \'X\''; 
if($ds['grund']== '0') $bandauer = '365';
if($ds['grund']== '1') $bangrund = 'Generic Radar Typ \'X\'';
if($ds['grund']== '1') $bandauer = '365';
if($ds['grund']== '2') $bangrund = 'using incorrect Cpu-Speed Parameter'; 
if($ds['grund']== '2') $bandauer = '20';
if($ds['grund']== '3') $bangrund = 'blacklisted and altered file \'Amb*\''; 
if($ds['grund']== '3') $bandauer = '20';
if($ds['grund']== '4') $bangrund = 'Modified Render Class'; 
if($ds['grund']== '4') $bandauer = '365';
if($ds['grund']== '5') $bangrund = 'Altered Engine Class'; 
if($ds['grund']== '5') $bandauer = '365';
if($ds['grund']== '6') $bangrund = 'Modified Engine Class'; 
if($ds['grund']== '6') $bandauer = '20';
if($ds['grund']== '7') $bangrund = 'Altered Engine Class - \'X\''; 
if($ds['grund']== '7') $bandauer = '20';
if($ds['grund']== '8') $bangrund = 'Missing Package DLL'; 
if($ds['grund']== '8') $bandauer = '20';
if($ds['grund']== '9') $bangrund = 'Missing Package Handle'; 
if($ds['grund']== '9') $bandauer = '20';
if($ds['grund']== '10') $bangrund = 'Unknown Package DLL'; 
if($ds['grund']== '10') $bandauer = '20';
if($ds['grund']== '11') $bangrund = 'Modified Player Class'; 
if($ds['grund']== '11') $bandauer = '20';
if($ds['grund']== '12') $bangrund = 'Modified Player Skin'; 
if($ds['grund']== '12') $bandauer = '20';
if($ds['grund']== '13') $bangrund = 'Altered Engine Class - Render Device'; 
if($ds['grund']== '15') $bandauer = '20';
if($ds['grund']== '14') $bangrund = 'Modified Engine Class'; 
if($ds['grund']== '14') $bandauer = '20';
if($ds['grund']== '15') $bangrund = 'Invalid Parameter - SoundVolume'; 
if($ds['grund']== '15') $bandauer = '20';
if($ds['grund']== '16') $bangrund = 'blacklistet process \'X\' '; 
if($ds['grund']== '16') $bandauer = '365';
if($ds['grund']== '17') $bangrund = 'System Hack (Kernel Hook)'; 
if($ds['grund']== '17') $bandauer = '365';

$timestamp = strtotime ($ds['enddate']); 
$neue_timestamp = $timestamp - 86400*$bandauer; 
$banstart = date("Y-m-d", $neue_timestamp); 

$banchecker='<a href="#" class="tt"><img src="http://www.tutorials.de/forum/images/icons/ese_alarm.png" title="Dieser Spieler wurde mindestens einmal geloggt!" border="0" alt="esebanchecker">
      <span class="tooltip">
        <span class="top"><strong>Zusatzinformationen:</strong><br><br></span>
        <span class="middle">Geloggt am: '.$banstart.'<br> Geloggte PUID: '.$ds['esepuid'].' <br>Bandauer: '.$ban_dauer.' Tage<br><br>Cheat/Grund: '.$bangrund.' <br>  </span>
        <span class="bottom"><br><img src="/images/ese_banlist.gif" border="0"><br><br></span>
      </span>
    </a>';
 }
}
//...


## EDIT ##

Hat sich erledigt! Hab nicht nachgedacht^^ Ich habe nun einfach "ORDER BY date DESC" hinzugefügt :p Manchmal sieht man den Wald vor lauter Bäumen nicht!
 
Zurück