Rang/Nummerierung ausgeben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
auswertung
bekommen
betrieb
code
dank
ergebnis
erreichen
gleiche ergebnis
gleiche ergebnisse
gruppe
kleine auswertung
laufen
numerierung
ordern
problem
schleife
sekundentakt
stadtmeisterschaft
tag
verein
-
Ich habe für unsere tag/stadtmeisterschaft">Stadtmeisterschaft im Bogenschießen eine kleine Auswertung mit PHP und MySQL gemacht.
Bisher funktioniert alles sehr gut, obwohl ich vor 3 Tagen noch kein PHP konnte.
Was ich jetzt als Problem noch habe ist die Auswertung.
Sie soll im Sekundentakt per Beamer ausgegeben werden, das ist nicht das Problem.
Auch den Aufbau der Nummerierung habe ich hinbekommen.
Jetzt ist mir aber aufgefallen, dass wenn zwei Gruppen das gleiche Ergebnis haben, sie unterschiedliche RÄNGE haben und das sollte so nicht sein. Gibt es eine alternative per PHP die ich benutzen kann oder muss ich eine StoredProcedure laufen lassen, die dann das Ranking in eine weitere Spalte aktualisiert?
Hier der Code für die Auswertung:
<html> <head> <meta http-equiv="refresh" content="1; url=auswertung.php"> </head> <?php include("inc/dbconnect.php"); $abfrage1 = mysql_query("SELECT * FROM gruppe1 ORDER BY KE DESC"); $abfrage2 = mysql_query("SELECT * FROM gruppe2 ORDER BY KE DESC"); $i1 = 0; $i2 = 0; echo "<table border='0'>"; echo "<tr><td colspan='3' align='center'><h1>Betriebe</h1></td></tr>"; while($row1 = mysql_fetch_object($abfrage1)) { echo "<tr>"; echo "<td width='40' align='center'>",$i1 += 1,".</td>"; echo "<td width='200'>",$row1->Name,"</td>"; echo "<td width='40' align='center'>",$row1->GE,"<br></td>"; echo "</tr>"; } echo "</table>"; echo "<table border='0'>"; echo "<tr><td colspan='3' align='center'><h1>Vereine & Gruppen</h1></td></tr>"; echo "<br><br>"; while($row2 = mysql_fetch_object($abfrage2)) { echo "<tr>"; echo "<td width='40' align='center'>",$i2++,".</td>"; echo "<td width='200'>",$row2->Name,"</td>"; echo "<td width='40' align='center'>",$row2->GE,"-",$row2->KE,"<br></td>"; echo "</tr>"; } echo "</table>"; ?> </html>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich hoffe, ich habe Dich richtig verstanden. Wenn zwei gleiche Ergebnisse nacheinander aufgelistet werden, sollen sie auch den gleichen Rang bekommen. Das kannst Du mit dem folgenden Script erreichen:
<html> <head> <meta http-equiv="refresh" content="1; url=auswertung.php"> </head> <?php include("inc/dbconnect.php"); $abfrage1 = mysql_query("SELECT * FROM gruppe1 ORDER BY KE DESC"); $abfrage2 = mysql_query("SELECT * FROM gruppe2 ORDER BY KE DESC"); $i1 = 0; $i2 = 0; echo "<table border='0'>"; echo "<tr><td colspan='3' align='center'><h1>Betriebe</h1></td></tr>"; $lastKE= -10000; // oder irgendein unmögliches Ergebnis ... while($row1 = mysql_fetch_object($abfrage1)) { if ($row1->KE>$lastKE) { $i1++; $lastKE=$row1->KE; } echo "<tr>"; echo "<td width='40' align='center'>$i1</td>"; echo "<td width='200'>",$row1->Name,"</td>"; echo "<td width='40' align='center'>",$row1->GE,"<br></td>"; echo "</tr>"; } echo "</table>"; echo "<table border='0'>"; echo "<tr><td colspan='3' align='center'><h1>Vereine & Gruppen</h1></td></tr>"; echo "<br><br>"; $lastKE= -10000; // oder irgendein unmögliches Ergebnis ... while($row2 = mysql_fetch_object($abfrage2)) { if ($row2->KE>$lastKE) { $i2++; $lastKE=$row2->KE; } echo "<tr>"; echo "<td width='40' align='center'>$i2</td>"; echo "<td width='200'>",$row2->Name,"</td>"; echo "<td width='40' align='center'>",$row2->GE,"-",$row2->KE,"<br></td>"; echo "</tr>"; } echo "</table>"; ?> </html>
Ich habe eine bedingte Inkrementierung
if ($row1->KE>$lastKE) { $i1++; $lastKE=$row1->KE; }
eingebaut, die den Wert $i1 bzw $2 nur dann erhöht, wenn der aktuelle KE-Wert größer als der letzte ist.
Vor jeder Schleife muss ich den $lastKE-Wert natürlich mit
$lastKE= -10000; // oder irgendein unmögliches Ergebnis ...
zurücksetzen.
Beitrag zuletzt geändert: 26.1.2010 17:22:19 von tuswb -
Danke, hat alles wunderbar geklappt.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage