Ergebnisse ordnen

  • Themenstarter Themenstarter adlershof
  • Beginndatum Beginndatum
A

adlershof

Hallo Tutorials-Community,

wollte mal fragen, wie ich das Skript so programmieren kann damit die Ergebnisse z.b. nach 111, 100, 87 usw. geordnet werden. Diese ist eine Tabelle in dem Punkte aus den Rennen in der Liga zusammengerechnet werden.

PHP:
<?php
include "header.php";
if ($_GET["season"] == $_GET["season"]) {
echo "<table cellSpacing=0 cellPadding=0 border=1><tbody>
<tr><td colSpan=3></td><td>Pkt.</td><td>BAH</td><td>MAL</td><td>AUS</td><td>SAN</td><td>EUR</td><td>SPA</td><td>MON</td><td>GBR</td><td>CAN</td><td>USA</td><td>FRA</td><td>DEU</td><td>UNG</td><td>T&Uuml;R</td><td>ITA</td><td>CHI</td><td>JPN</td><td>BRA</td></tr>";

$stat = mysql_query("SELECT * FROM wm WHERE season=$_GET[season]");
while($row = mysql_fetch_array($stat)) {
extract($row);

$erg_gp = $bah_gp+$mal_gp+$aus_gp+$san_gp+$eur_gp+$spa_gp+$mon_gp+$gro_gp+$kan_gp+$usa_gp+$fra_gp+$deu_gp+$ung_gp+$tur_gp+$ita_gp+$chi_gp+$jap_gp+$bra_gp;

echo "<tr><td>$id</td><td>$vorname</td><td>$nachname</td><td align=center>$erg_gp</td><td align=center>$bah_gp</td><td align=center>$mal_gp</td><td align=center>$aus_gp</td><td align=center>$san_gp</td><td align=center>$eur_gp</td><td align=center>$spa_gp</td><td align=center>$mon_gp</td><td align=center>$gro_gp</td><td align=center>$kan_gp</td><td align=center>$usa_gp</td><td align=center>$fra_gp</td><td align=center>$deu_gp</td><td align=center>$ung_gp</td><td align=center>$tur_gp</td><td align=center>$ita_gp</td><td align=center>$chi_gp</td><td align=center>$jap_gp</td><td align=center>$bra_gp</td></tr>";
}
echo "
</tbody></table>";
}
include "footer.php";
?>
 
Mhm irgendwie weiß :google: immer dei Antwort :rolleyes:
Naja das wäre mit arbeit verbunden ^^

Also du möchtest eine Tabelle absteigend ordnen. Dies geht mit
order by deine Zelle desc (desc --> absteigend glaube ich ^^)

Demnach sieht dein Code dann so aus:
PHP:
$stat = mysql_query("SELECT * FROM wm WHERE season=$_GET[season] desc");
while($row = mysql_fetch_array($stat)) {
extract($row);

wenn nicht dann hab ich nur nen Fehler gemacht ^^
 
Hi!

... vorher müssen aber wohl noch die einzelnen Punkte der jeweiligen Rennen in MySql addiert werden, um danach sortieren zu können ...?

... ORDER BY (bah_gp + mal_gp + aus_gp) DESC ...?

Grüße,
Mark.
 
es ist aber besser solche funktionen SQL zu überlassen
den im vergleich zu php ist MYSQL dafür gedacht
daten zu sortieren und zu filtern!

das geht bei größeren abfragen schneller
 
Hi Napofis!

Bitte achte bzgl. Deiner durchgehenden Kleinschreibung auf die Netiquette. Danke :)

Grüße,
Mark.
 
Mir ist da eine andere Möglichkeit eingefallen.

Die wäre, dass ich bei der Ausgabe der Tabelle ein Feld mit erg_gp aus der Datenbank angebe. Dann wäre es allerdings so, dass ich die Gesamtpunktzahl im Administrationsbereich zusammenrechnen lasse. Allerdings gäbe es glaube da dass Problem, dass man jeweils nur eine Sache und nicht fünf, sechs gleichzeitig speichern kann an Daten. Daher frage ich mich, wie ich in einem Skript wo ich alles aus einer Saison in der Übersicht habe, z.b. über den Button Sichern an letzter Stelle nach der Punktzahl des letzten Rennens der Saison speichern lasse. Nur wie kann ich das Programmieren, damit ich alle Daten einzeln speichern kann pro Fahrer und sehe, dass schon welche Gespeichert wurden.

Ich hoffe, ihr versteht was ich meine.
 
Also, ich gehe da nochmal auf SQL ;)
PHP:
$select = "SELECT * FROM tablename ORDER BY punkte"; // Sortiert aufsteigend -> 1,4,6,9

$select = "SELECT * FROM tablename ORDER BY punkte DESC"; // Sortiert absteigend -> 9,6,4,1

Wenn du Sachen gleichzeitig speichern willst, mache das doch so:
PHP:
$sache  = 'value';
$sache .= ',Peter';
$sache .= ',immer mit Komma';

$insert =  "INSERT INTO tablename (Sache) VALUES ('$sache')";
$query = mysql_query($insert);

// Dateien Auslesen

$select = "SELECT Sache FROM tablename WHERE id = xy";
$query = mysql_query($select);
$sache = mysql_fetch_array($query);

$sachen = explode(',', $sache[0]);
echo $sachen[0].'<br />'.$sachen[1].'<br />'.$sachen[2];

//Explode trennt strings in ein Array, der erste Parameter ist, wo getrennt werden soll, hier 
//das komma, der zweite, welcher String bearbeitet werden soll.
 
Ich weiss nicht genau, ob ich das jetzt richtig verstanden habe, was du willst. Aber wenn ich da nichts fehlinterpretiert habe, sollte folgende Lösung eigentlich zum Ziel führen.
PHP:
$db_res = mysql_query("SELECT vorname, nachname, [...], (bah_gp + mal_gp + aus_gp + san_gp + [...] + bra_gp) AS Sum FROM wm WHERE Season = ".mysql_real_escape_string($_GET['season']);

while($rows = mysql_fetch_assoc($db_res))  {
  [...]
}

Ausserdem lege ich dir ans Herz: Formatier deinen Code, dass man ihn lesen kann. Bei solch kurzen Codeschnipseln geht es noch einigermassen. Wenn du aber einmal ein umfangreicheres Problem hast und der Community ein solches Wirrwarr vorlegst, dann hilft dir schon mal die Hälfte nicht, weil die Zeit nicht da ist, die man für die "Lesbarmachung" einsetzen müsste. Also: Rück deinen Code gscheit ein und benutz, bei deiner HTML-Ausgabe über echo um Himmels (oder jemandes anderen) Willen Zeilenumbrüche. Die Taste dazu findest du im rechten Bereich des Keyboards zwischen Shift und Backspace.

Ausserdem:
PHP:
if($_GET['season'] == $_GET['season'])
Überleg dir, welches Ergebnis du von dieser Abfrage erwartest ;)

Gruss
De Igäl
 
Wenn du Sachen gleichzeitig speichern willst, mache das doch so:
PHP:
$sache  = 'value';
$sache .= ',Peter';
$sache .= ',immer mit Komma';

$insert =  "INSERT INTO tablename (Sache) VALUES ('$sache')";
$query = mysql_query($insert);

// Dateien Auslesen

$select = "SELECT Sache FROM tablename WHERE id = xy";
$query = mysql_query($select);
$sache = mysql_fetch_array($query);

$sachen = explode(',', $sache[0]);
echo $sachen[0].'<br />'.$sachen[1].'<br />'.$sachen[2];

//Explode trennt strings in ein Array, der erste Parameter ist, wo getrennt werden soll, hier 
//das komma, der zweite, welcher String bearbeitet werden soll.
Wie würde das abgehen, wenn ich mehre Sachen mit der UPDATE Funktion gleichzeitig speichern möchte. Genauso oder anders?
 
Zurück