geht so was nicht?

Paspirgilis

Weißer Powerranger
PHP:
<html>
	<head>
<?php
$DatabaseHost = "**";
$DatabaseUser = "**";
$DatabasePassword = "**";
$Database = "**";
$DatabasePointer = mysql_connect($DatabaseHost, $DatabaseUser, $DatabasePassword);
mysql_select_db($Database, $DatabasePointer);
$tabelle = "<table width='700px' colspan='0' cellspacing='0' cellpadding='0'><tr><td align=right width='350px'><h1>Die Rekorde&nbsp;</h1></td><td align=left width='350px'><h1>von Klick mich</h1></td></tr><tr><td align=center width='350px'><h3>Punkte</h1></td><td align=center width='350px'><h1>Name</h1></td></tr>";
for ($i=9000000;$i==0;$i--)
	{
	$name_a = mysql_fetch_row(mysql_query("SELECT `name` FROM `spieler` WHERE `punkte` = '".$i."'"));
	if(empty($name_a))
		{
		}
	else 
		{
		$name = $name_a[0];
		$tabelle &= "<tr><td align=center width='350px'><h3>".$i."</h1></td><td align=center width='350px'><h1>".$name."</h1></td></tr>";
		}
	}
$tabelle &= "</table>";
?>
		<title>Klick mich - Die Rekordliste</title>
		<!-- Deklarieren, dass ich alles geschrieben habe -->
		<meta name="author" content="Mark Paspirgilis" />
		<meta name="publisher" content="Mark Paspirgilis" />
		<meta name="copyright" content="&copy; 2007 by Mark Paspirgilis" />
		<!-- Erklärung zur Web-Page -->
		<meta name="description" content="Rekorde von Klick mich" />
	</head>
	<body bgcolor="silver">
		<br>
		<?php echo '		<p align=center>'.$tabelle.'</p>'; ?>
	</body>
</html>

eigentlich soll er ne tabelle erstellen die die rekorde anzeigt.
deswegen fängt der groß an und sucht dann die mit weniger punkte.
MFG
Mark Paspirgilis
 
PHP:
for ($i=9000000;$i==0;$i--)
Hier liegt der Fehler.
Es müsste heißen:
PHP:
for ($i=9000000;$i>=0;$i--)

Warum lässt du dir nicht alle Punkte zurück geben in absteigender Form?
SQL:
SELECT name,punkte FROM spieler ORDER BY punkte DESC
Da reicht 1 Datenbankabfrage und du musst nich 9 Millionen Abfragen absetzen.
 
Zuletzt bearbeitet von einem Moderator:
Hab gestern "ernsthaft" angefangen mit MySQL deswegen xD.
Danke hab was neues gelernt: Order by und Desc also das man das da einbauen kann.
MFG
Mark Paspirgilis

irgendwas mach ich falsch:
PHP:
<?php
$tabelle = "<table width='700px' colspan='0' cellspacing='0' cellpadding='0'><tr><td align=right width='350px'><h1>Die Rekorde&nbsp;</h1></td><td align=left width='350px'><h1>von Klick mich</h1></td></tr><tr><td align=center width='350px'><h3>Punkte</h1></td><td align=center width='350px'><h1>Name</h1></td></tr>";
$name_a = mysql_fetch_row(mysql_query("SELECT `name` FROM `spieler` ORDER BY `punkte` DESC"));
$punkte_a = mysql_fetch_row(mysql_query("SELECT `punkte` FROM `spieler` ORDER BY `punkte` DESC"));
for ($i=0;$i<50;$i++)
	{
	if(isset($name_a[$i]) && isset($punkte_a[$i]))
		{
		$name = $name_a[$i];
		$punkte = $punkte_a[$i];
		$tabelle &= "<tr><td align=center width='350px'><h3>".$punkte."</h1></td><td align=center width='350px'><h1>".$name."</h1></td></tr>";
		}
	}
$tabelle &= "</table>";
?>
http://fichte.kilu.de
und dort einfach mal auf die Rekordeliste klicken.
MFG
Mark Paspirgilis
 
Da dürftest du einen Fehler in deinem PHP-Code haben. Da bist du im PHP-Bereich besser aufgehoben. Frag dort bitte noch mal nach.

Du kannst die Namen auch gleich mit den Punkten aus deiner Tabelle lesen lassen.
Code:
SELECT name,punkte FROM spieler ORDER BY punkte DESC
Nur wie du dan in PHP darauf zugreifst weiß ich nicht.

Wenn du sowieso nur die ersten 50 Datensätze verarbeitest, kannst du deine Abfrage auch auf 50 Ausgabedatensätze limitieren.

Code:
SELECT name,punkte FROM spieler ORDER BY punkte DESC LIMIT 50
 
Hallo,
PHP:
<?php
    $tabelle = '<table width="700px" colspan="0" cellspacing="0" cellpadding="0"><tr><td align=right width="350px"><h1>Die Rekorde&nbsp;</h1></td><td align=left width="350px"><h1>von Klick mich</h1></td></tr><tr><td align=center width="350px"><h3>Punkte</h1></td><td align=center width="350px"><h1>Name</h1></td></tr>';

    $sql = 'SELECT `name`, `punkte` FROM `spieler` ORDER BY `punkte` DESC LIMIT 50';
    $query = mysql_query($sql) or die(mysql_error());

    while ($ds = mysql_fetch_assoc($query)){
        $tabelle .= '<tr><td align=center width="350px"><h3>'.$ds['punkte'].'</h1></td><td align=center width="350px"><h1>'.$ds['name'].'</h1></td></tr>';
    }

    $tabelle .= '</table>';
?>

mfg
forsterm
 
Es sind ein paar Fehler enthalten. Ich würd’s wie folgt machen:
PHP:
$result = mysql_query("SELECT `name`, `punkte` FROM `spieler` ORDER BY `punkte` DESC");
if( is_resource($result) && mysql_num_rows($result) ) {
	$tabelle = "<table width='700' cellspacing='0' cellpadding='0'><caption>Die Rekorde von Klick mich</caption><tr><th>Punkte</th><th>Name</th></tr>";
	while( $row = mysql_fetch_assoc($result) ) {
		$tabelle .= "<tr><td>".htmlspecialchars($row['punkte'])."</td><td>".htmlspecialchars($row['name'])."</td></tr>";
	}
	$tabelle .= "</table>";
} else {
	// Fehler bei der Abfrage oder keine Datensätze gefunden
}
 
Zurück