Seite 2 von 2

Verfasst: 11.07.2008 11:29
von TLoD
ich bin leider noch auf arbeit und kann es somit z.z. nicht testen.
ja der nick taucht mehrfach auf.

es ist so das in dieser tabelle mitgeschrieben wird, wenn ein user einen button betätigt. das pssiert pro user ca. 21-63 mal am tag.

sprich pro user gibt es bis zu 63 einträge täglich oder auch mehr.
jede betätigung dieses buttons überträgt das datum mit uhrzeit und den nick in form der ID. diese ID werde ich später über eine funktion dem jeweiligen nickname zuordnen. jeder eintrag in dieser tabelle bekommt dann natürlich noch eine ID.

Verfasst: 11.07.2008 14:15
von TLoD
So ich habe nun mal beider Varianten getestet und musste leider feststellen, dass keiner dieser möglichen Lösungen funzt.

Ich will eigentlich das immer nur der letzte Eintrag ausgegeben wird.
Sprich, wenn User xy 30 Einträge hat, soll nur der jüngste angezeigt werden.

Momentan erstellt es mir Tabellen bis Limitgrenze.

Tabelle 1=Platz 1
Tabelle 2=Platz 1-2
Tabelle 3=Platz 1-3
letzte Tablle wäre dann Platz 1-22

In den Tabellen steht dann immer alles von einem User dann geht es mit dem nächsten weiter. Einzig funtionierende Sache, es wird anch Datum sortiert :D

So und hier mal der Code:

Code: Alles auswählen

$sql = "SELECT
                                        Scanner,
                                        Datum
                     FROM
                        ".SCANLOGS."
                                WHERE 1
                     ORDER BY
                        Datum DESC LIMIT 0, 22;";

                $result = mysql_query($sql) OR die(mysql_error());
                $scanner = array();
                $datum = array(); // gibt die Einzelscans des Spielers an
                $eintraege_spieler = 0;
                while($row = mysql_fetch_assoc($result)) {
                        $scanner[] = $row['Scanner'];
                        $datum[] = $row['Datum'];
                        $eintraege_spieler++;

                
                // Rankingtabelle erzeugen
                echo "  <h2>Rankings</h2>
                        <table border=\"1\" width=\"40%\">
                                <colgroup>
                                        <col width=\"1*\">
                                        <col width=\"1*\">
                                        <col width=\"4*\">
                                </colgroup>
                                <tr>
                                        <th>Platz</th>
                                        <th>Spieler</th>
                                        <th>Datum</th>
                                </tr>";

                for ($i=0; $i<$eintraege_spieler; $i++) {
                        echo "  <tr>
                                        <td align=\"center\">".($i + 1)."</td>
                                        <td align=\"center\">".$scanner[$i]."</td>
                                        <td align=\"center\">".$datum[$i]."</td>
                                </tr>";
                }

                echo "</table></body></html>";
        }
Evtl. wisst Ihr ja was ich da wieder verbockt habe :cry:

Verfasst: 11.07.2008 19:25
von TLoD
so wieder ein stück weiter...
nun listet er alles in einer tabelle aber ich habe noch immer das problem, das er mir alle einträge listet statt immer nur den aktuellsten von jedem user...

Code: Alles auswählen

$sql = "SELECT
                                        Scanner,
                                        Datum
                     FROM
                        ".SCANLOGS."
                                WHERE 1
                     ORDER BY
                        Datum DESC LIMIT 0,22;";

                $result = mysql_query($sql) OR die(mysql_error());
                $scanner = array();
                $datum = array(); // gibt die Einzelscans des Spielers an
                $eintraege_scanner = 0;
                while($row = mysql_fetch_assoc($result)) {
                        $scanner[] = $row['Scanner'];
                        $datum[] = $row['Datum'];
                        $eintraege_scanner++;
                }

                // Rankingtabelle erzeugen
                echo "  <h2>Rankings</h2>
                        <table border=\"1\" width=\"40%\">
                                <colgroup>
                                        <col width=\"1*\">
                                        <col width=\"1*\">
                                        <col width=\"4*\">
                                </colgroup>
                                <tr>
                                        <th>Platz</th>
                                        <th>Spieler</th>
                                        <th>Datum</th>
                                </tr>";

                for ($i=0; $i<$eintraege_scanner; $i++) {
                        echo "  <tr>
                                        <td align=\"center\">".($i + 1)."</td>
                                        <td align=\"center\">".$scanner[$i]."</td>
                                        <td align=\"center\">".date(timeFormat(),strtotime($datum[$i]))."</td>
                                </tr>";
                }

                echo "</table></body></html>";

Verfasst: 11.07.2008 21:05
von Dr.Death
Du hast dein Thema binnen weniger Minuten/Stunden mit einem Folgebeitrag nach oben geschoben.
Die Mindestwartezeit für Topic Bumping beträgt 24 Stunden.

Bitte lies Dir den phpBB.de-Knigge und den Hinweis zur Fragestellung und Rechtschreibung durch und beachte diese zukünftig.