MySQL-Abfrage

andulus

Erfahrenes Mitglied
Hallo Leute!
Ich habe folgendes Problem:
In unserer Gilde (Guild Wars Factions/Prophecies) müssen wir regelmäßig Pkte einzahlen und das wollen wir natürlich über ein Programm kontrollieren.
Nun wird jedes mal wenn eingezahlt wurde das auch auf der Homepage vermerkt und in eine Datenbank gespeichert.
Jetzt wolln wir eine Toplist machen und diese nach Gilden sortieren und da ist mein Problem:
Immer wenn ich diese Abfragen mache erscheint es mir so:
------------------------
BP Lost Souls
BP Haupt Gruppe

member1 300pkte
member2 290pkte
-------------------------
und so sollte es eigentlich sein
--------------------------
BP Lost Souls
member1 300pkte
BP Haupt Gruppe
member2 290pkte
--------------------------
Und hier ist der Source-ausschnit der hierfür wichtig ist....
PHP:
$guild = "BP Lost Souls";
	echo "<h1>".$guild."</h1>";
		$toplist_query = mysql_query( 'select t_pts.username, t_users.guild, t_pts.pts from t_pts, t_users where t_pts.username=t_users.username AND t_users.guild="'.$guild.'" order by t_pts.pts desc;' );
		while( $buffer = mysql_fetch_row( $toplist_query ) ) {
			echo '<tr><td><a href="details.php?username='.$buffer[0].'">'.$buffer[0].'</a></td><td>'.$buffer[1].'</td><td>'.$buffer[2].'</td></tr>';
		}
		 $guild = "BP Haupt Gilde";
		echo "<h1>".$guild."</h1>";
		$toplist_query = mysql_query( 'select t_pts.username, t_users.guild, t_pts.pts from t_pts, t_users where t_pts.username=t_users.username AND t_users.guild="'.$guild.'" order by t_pts.pts desc;' );
		while( $buffer = mysql_fetch_row( $toplist_query ) ) {
			echo '<tr><td><a href="details.php?username='.$buffer[0].'">'.$buffer[0].'</a></td><td>'.$buffer[1].'</td><td>'.$buffer[2].'</td></tr>';
		}
glg Andulus
 
Dann sortiere zuerst den Gildenname. Darüber hinaus solltest du mal nach dem Stichwort „gruppierte Ausgabe“ suchen.
 
Danke Gumbo!
Ich werd mal schaun ob ich was darüber finden werde ^^
Übrigens wie genau meinst du das jetzt mit den Gildensortieren
Also nicht zuerst
PHP:
...WHERE t_pts.username=t_users.username....
//sondern...
...WHERE t_users.guild="'.$guild.'"....
oder
lg Andulus
 
Ich habe mir die Abfrage eher so vorgestellt:
Code:
SELECT
         `t_pts`.`username`,
         `t_users`.`guild`,
         `t_pts`.`pts`,
  FROM
         `t_pts`,
         `t_users
  WHERE
         `t_pts`.`username` = `t_users`.`username`
  ORDER BY
         `t_users`.`guild`,
         `t_pts`.`pts` DESC
 
Du machst das völlig richtig, aber dein
Code:
echo "<h1>".$guild."</h1>";
ist verkehrt.

Das muss so sein:

Code:
echo "<tr><td colspan=3><h1>".$guild."</h1></td></tr>";

ansonsten wird das was nicht in TD steht immer oben drüber gepackt.

Und an die anderen: Lest euch doch das Problem erstmal durch bevor Ihr versucht das Problem zu lösen.....
Es geht nicht um die Query sondern um den Fehlerhaften HTML Code.

Man kann es zwar auch in einer Query machen, aber das Grundproblem ist hier ein anderes....

Marcus
 
Ok danke leute für die zahlreichen antworten...
Ich werde es heute gleich mal ausprobieren danach melde ich mich wieder
lg Andulus
 
Hallo!
Riesen Dank an ripkens
Du hast 100% Recht gehabt!
Natürlich auch ein großes Dankeschön an unseren alten Freund Gumbo.
lg Andulus
 
Zurück